代码之家  ›  专栏  ›  技术社区  ›  Sea Star

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

  •  0
  • Sea Star  · 技术社区  · 6 年前

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

    我的问题是基于正在决定的map和reduce任务的数量?

    是否有特定的贴图/缩小尺寸,然后创建新的贴图/缩小尺寸?

    非常感谢各位。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Gyanendra Dwivedi    6 年前

    official doc :

    映射的数量通常由中DFS块的数量决定 输入文件。尽管这会导致人们调整DFS块 调整贴图数量的大小。正确的并行级别 地图似乎大约是10-100个地图/节点,尽管我们已经开始使用它 对于非常cpu的光照贴图任务,大约为300。任务设置需要一段时间,所以 最好是至少花一分钟来执行贴图。

    理想的减速器应为使其最接近的最佳值:

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

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

    • 工作流下一阶段的性能糟糕
    • 洗牌导致的糟糕表现
    • 总体性能糟糕,因为您的 namenode 那些最终无用的东西
    • 无正当理由销毁磁盘IO
    • 大量网络传输
        2
  •  0
  •   Rajnil Guha    6 年前

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