我有一个普遍的疑问。在并行计算大量密钥(大约2900万)的mapreduce中的总和时,我的工作大约需要20分钟才能在10 GB节点和2 GB RAM和40 GB硬盘的集群中运行。我已经在我的代码中实现了合并器。
我可以在群集中调整哪些常规设置以提高性能?比如,何时应该增加mapper或reducer的内存,何时不是?什么时候增加容器的尺寸?何时调整" reduce.shuffle.input.buffer.percent"值?
如果我能够在应该执行上述哪种设置时对某些情况有所了解,那将非常有用。我浏览了各种博客,但这些信息对我来说有点模糊。
答案 0 :(得分:0)
您有10个数据节点和数百万个密钥,您必须使用足够的地图任务。如果您使用单一减速机,请尝试增加减速机数量 - > job.SetNumReducerTasks(任何数量)。这将利用并行处理。