如何确定map和reduce任务的数量?

时间:2018-03-29 17:12:36

标签: hadoop mapreduce

使用map reduce在Hadoop上运行某个文件时,有时会创建1个map任务,1个减少任务,而其他文件可以使用4个map和1个reduce任务。

我的问题是基于map和reduce任务的数量决定了什么?

是否有某个map / reduce大小,之后会创建一个新的map / reduce?

非常感谢大家。

2 个答案:

答案 0 :(得分:0)

来自official doc

  

地图数量通常由DFS块的数量驱动   输入文件。虽然这会导致人们调整他们的DFS块   大小来调整地图的数量。正确的并行度   地图似乎大约是10到100个地图/节点,尽管我们已经采用了它   非常cpu-light地图任务的300左右。任务设置需要一段时间,所以   最好是地图至少需要一分钟才能执行。

理想的减速器应该是使它们最接近的最佳值:

  • 块大小的倍数
  • 5到15分钟之间的任务时间
  • 创建尽可能少的文件

除此之外的任何事情都意味着你的减速机很可能不是很好。用户有一种极大的倾向,即使用真正的高值(“更多并行性意味着更快!”)或真正的低值(“我不想破坏我的命名空间配额!”)。两者都同样危险,导致一个或多个:

  • 工作流程下一阶段的糟糕表现
  • 由于洗牌造成的糟糕表现
  • 糟糕的整体表现,因为你用最终无用的物品重载了namenode
  • 出于没有理智的原因销毁磁盘​​IO
  • 大量网络传输

答案 1 :(得分:0)

Mappers的数量等于将要处理的输入文件的HDFS块数。 理想情况下,减速器的数量应该是总映射器的10%左右。假设您有100个映射器,那么理想情况下,减速器的数量应该在10左右。 但是,可以在Map Reduce作业中指定减速器的数量。