如何确定camus的Map器数量?

wgeznvg7  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(358)

我刚从加缪开始。
我计划每一小时跑一次加缪。我们四处走走~ 80000000 每小时发送一次邮件,平均邮件大小为 4KB (Kafka只有一个主题)。
我第一次尝试 10 在Map绘制者那里,复制一个小时的数据花费了约2小时,并创建了10个大小约为7gb的文件。
然后我试着 300 Map绘制员,它把时间缩短到1小时。但它创建了11个文件。后来,我试着 150 用了30分钟。
那么,我该如何选择Map绘制者的数量呢?另外,我想在hadoop中创建更多的文件,因为一个文件的大小正在增长到7gb。我必须检查什么配置?

xj3cbfub

xj3cbfub1#

理想情况下,它应该等于或小于你的主题中的Kafka分区。
这意味着,为了获得更好的吞吐量,您应该有更多的分区和相同数量的camusMap器

olhwl3o2

olhwl3o22#

我在这篇文章中找到了最好的答案
Map的数量通常由输入文件中dfs块的数量驱动。它使人们调整他们的dfs块大小来调整Map的数量。
Map的正确并行级别似乎是10-100个Map/节点,尽管对于非常cpu的光照Map任务,我们已经将其提高到300个左右。
最好是至少花一分钟来执行Map。
所有这些都取决于您拥有的cpu的能力、应用程序的类型—io绑定(重读/写)或cpu绑定(重处理)以及hadoop集群中的节点数。
除了在全局级别设置Map器和还原器的数量外,还要根据要处理的数据和作业的需要在作业级别重写这些值。
最后还有一件事:如果您认为combiner减少了mapper和reducer之间的io传输,请将它与partitioner结合使用

相关问题