MR工作的各个阶段的正确顺序?

时间:2018-03-09 05:27:48

标签: hadoop mapreduce yarn hadoop2

我试图了解MR Job经历的各个阶段。我阅读了相同的在线文档。

基于此,我对序列的理解如下:

map() - >分区程序 - >排序(在映射机上) - >随机 - >分拣(在减速机上) - > groupBy(Key)(在reducer机器上) - >减少()

这是MR作业执行的正确顺序吗?

2 个答案:

答案 0 :(得分:2)

地图的各个阶段减少了工作:

地图阶段:

  • 从HDFS读取分配的输入分割

  • 将记录中的输入解析为键值对

  • 将地图功能应用于每条记录

  • 通知主节点完成

分区阶段

  • 每个映射器必须确定哪个reducer将接收每个输出

  • 对于任何密钥,目标分区都是相同的

  • 没有。分区数=减速机数

随机播放阶段

  • 从与reduce任务的存储桶对应的部分的所有地图任务中获取输入数据

排序阶段

  • 合并将所有地图输出排序为单次运行

减少阶段

  • 将用户定义的reduce函数应用于合并的un

  • 参数是关键值和相应的值列表

  • 将输出写入HDFS中的文件

答案 1 :(得分:1)

地图减少作业的时间表

enter image description here

  • 地图阶段:执行多个地图任务
  • 减少阶段:执行多个减少任务

MapTask的时间轴

enter image description here

ReduceTask的时间表

enter image description here

图片来源:https://www.slideshare.net/EmilioCoppa/hadoop-internals

相关问题