我试图了解MR Job经历的各个阶段。我阅读了相同的在线文档。
基于此,我对序列的理解如下:
map() - >分区程序 - >排序(在映射机上) - >随机 - >分拣(在减速机上) - > groupBy(Key)(在reducer机器上) - >减少()
这是MR作业执行的正确顺序吗?
答案 0 :(得分:2)
地图的各个阶段减少了工作:
地图阶段:
从HDFS读取分配的输入分割
将记录中的输入解析为键值对
将地图功能应用于每条记录
通知主节点完成
分区阶段
每个映射器必须确定哪个reducer将接收每个输出
对于任何密钥,目标分区都是相同的
没有。分区数=减速机数
随机播放阶段
排序阶段
减少阶段
将用户定义的reduce函数应用于合并的un
参数是关键值和相应的值列表
将输出写入HDFS中的文件
答案 1 :(得分:1)
地图减少作业的时间表
MapTask的时间轴
ReduceTask的时间表
图片来源:https://www.slideshare.net/EmilioCoppa/hadoop-internals