Hadoop MapReduce:默认的映射器数量



如果我不指定映射器的数量,如何确定数量?是否有从配置文件(例如mapred-site.xml(读取的默认设置?

在克里斯上面添加的内容中添加更多内容:

  1. 映射的数量通常由输入文件中的 DFS 块的数量决定。尽管这会导致人们调整其DFS块大小以调整地图数量。

  2. 映射
  3. 的正确并行级别似乎是大约 10-100 个映射/节点,尽管对于非常轻 CPU 的映射任务,这可以达到 300 个左右。任务设置需要一段时间,因此最好至少需要一分钟才能执行地图。

  4. 您可以通过修改 JobConf 的 conf.setNumMapTasks(int num( 来增加 Map 任务的数量。注意:这可能会增加映射任务的数量,但不会将数量设置为低于Hadoop通过拆分输入数据确定的数量。

最后,控制地图的数量是微妙的。mapred.map.tasks 参数只是对映射数量的 InputFormat 的提示。默认的 InputFormat 行为是将字节总数拆分为正确数量的片段。但是,在默认情况下,输入文件的 DFS 块大小被视为输入拆分的上限。拆分大小的下限可以通过mapred.min.split.size设置。

因此,如果你期望10TB的输入数据并拥有128MB的DFS块,你最终会得到82k个地图,除非你的mapred.map.tasks更大。最终,输入格式决定了映射的数量。

阅读更多:http://wiki.apache.org/hadoop/HowManyMapsAndReduces

这取决于许多因素:

  • 输入格式和格式的特定配置属性
  • 对于基于文件的输入格式(文本输入格式、序列文件输入格式等(:
    • 输入文件/路径数
    • 是可拆分的文件(通常压缩文件不是,SequenceFiles 是一个例外(
    • 文件的块大小

可能还有更多,但希望你能明白

相关内容

  • 没有找到相关文章

最新更新