我刚开始使用加缪。
我计划每隔一小时运行一次加缪。我们每小时都会收到〜80000000
条消息,平均邮件大小为4KB
(我们在Kafka中只有一个主题)。
我首先尝试使用10
映射器,复制一个小时的数据花费了大约2小时,创建了大小约为7GB的10个文件。
然后我尝试了300
映射器,它将时间缩短到约1小时。但它创建了11个文件。后来,我尝试使用150
映射器,花了大约30分钟。
那么,我如何选择这个地图的数量呢?此外,我想在hadoop中创建更多文件,因为一个大小增长到7GB。我需要检查哪些配置?
答案 0 :(得分:0)
我在article
中找到了最佳答案地图数量通常由输入文件中 DFS块的数量决定。它会导致人们调整其DFS块大小以调整地图数量。
地图的正确并行级别似乎在 10-100个地图/节点附近,尽管我们已经将 300 用于非常cpu-light地图任务。
最好是地图至少需要一分钟才能执行。
全部取决于您拥有的CPU的功率,应用程序的类型 - IO绑定(重读/写)或 CPU绑定(重处理)和数量Hadoop集群中的节点。
除了在全局级别设置映射器和缩减器的数量之外,还要根据要处理作业需要的数据覆盖作业级别的值。
最后还有一件事:如果您认为 Combiner 减少了 Mapper 和 Reducer 之间的IO转移,请将其有效地结合使用使用分区程序
答案 1 :(得分:0)
理想情况下,在您的主题中,它应该等于或小于您拥有的kafka分区。
这意味着,为了获得更好的吞吐量,您的主题应该有更多的分区和相同数量的camus映射器