为什么dict的使用使得mapreduce变得很慢?

eimct9ow  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(180)

有一个问题,我有一些日志,日志的每一行包含的 question_id, user_id, content and timestamp ,就像一些论坛数据。
我需要做的是使用mapreduce计算十大热门问题。
我编写了Map器输出 <question_id, 1> 对每一行的原木和减速机计算总的重量 user_id 对于每个 question_id .
然后我发现Map器的输出太多了。这可能需要花费大量时间来洗牌和排序磁盘和网络中的数据。所以我做了一个优化,我用dict(或map)来存储 user_id 例如,对于每个问题, <qid1, uid1> <qid1, uid2> 可以优化为 <qid1, 2> 2是指 user_id 为了 qid1 .
但是,遗憾的是,这个解决方案比第一个算法慢。我认为访问dict(map)可能会增加时间消耗。
环境:
cloudra虚拟机
2核,2gb内存
问题:
数据大小和主机数量是选择算法的关键吗?
如何确定哪一个更适合我(我必须尝试这两种算法,然后找出哪一种更好?)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题