我试图了解mr作业所经历的各个阶段。我也读过网上的文档。基于此,我对顺序的理解如下:map()->partitioner->sorting(在mapper机器上)->shuffle->sorting(在reducer机器上)->groupby(键)(在reducer机器上)->reduce()这是mr作业执行的正确顺序吗?
zujrkrfu1#
Map缩减作业时间线Map阶段:执行多个Map任务reduce阶段:执行多个reduce任务maptask的时间线reducetask的时间线图像来源:https://www.slideshare.net/emiliocoppa/hadoop-internals
szqfcxe22#
map reduce作业的各个阶段:Map阶段:从hdfs读取分配的输入拆分将输入解析为键值对对每个记录应用Map函数通知主节点其完成分区阶段每个Map器必须确定哪个减速机将接收每个输出对于任何键,目标分区都是相同的隔板数量=异径管数量洗牌阶段从所有Map任务中获取与reduce任务的bucket对应的部分的输入数据排序阶段合并将所有Map输出排序为单个运行还原相将自定义reduce函数应用于合并的un参数是键和相应的值列表将输出写入hdfs中的文件
2条答案
按热度按时间zujrkrfu1#
Map缩减作业时间线
Map阶段:执行多个Map任务
reduce阶段:执行多个reduce任务
maptask的时间线
reducetask的时间线
图像来源:https://www.slideshare.net/emiliocoppa/hadoop-internals
szqfcxe22#
map reduce作业的各个阶段:
Map阶段:
从hdfs读取分配的输入拆分
将输入解析为键值对
对每个记录应用Map函数
通知主节点其完成
分区阶段
每个Map器必须确定哪个减速机将接收每个输出
对于任何键,目标分区都是相同的
隔板数量=异径管数量
洗牌阶段
从所有Map任务中获取与reduce任务的bucket对应的部分的输入数据
排序阶段
合并将所有Map输出排序为单个运行
还原相
将自定义reduce函数应用于合并的un
参数是键和相应的值列表
将输出写入hdfs中的文件