码迷,mamicode.com
首页 > 其他好文 > 详细

Mapreduce详解Shuffle过程

时间:2020-02-20 13:13:52      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:宽带   错误   partition   park   shu   merge   rac   回顾   不必要   

引自[https://www.iteye.com/blog/langyu-992916]
shuffle的意义有三点:
1.把map task端的数据完整传输到reduce task端
2.减少不必要的宽带消耗
3.减少磁盘IO消耗

首先把Shuffle理解为map的shuffle和reduce的shuffle
map task端的shuffle可以分为以下几个步骤:
1.map,对key进行value赋值
2.partitioner,对于不同的key值分配不同的reduce task端,个人理解key/value以及分哪个reduce信息写在一起。
3.spill,写入内存缓冲区后,会造成以溢写,写入磁盘
4.conbiner,溢写文件会相同的key做合并操作
5.merge,对多个溢写文件进行合并,最后每个map task端只有一个溢写文件

reduce task端的shuffle可以分为以下几个步骤:
1.copy,首先根据jobtracker获取map task数据。从不同map task端copy数据过来。
2.merge,将不同map task端的数据合并起来,作为reduce端的输入
3,reduce,得到最终结果

这次回顾,能更深理解其中过程,但仍然觉得有部分地方理解错误,需要继续对其学习。
后面将对spark进行回顾,加强学习。
目前Hadoop中的mapreduce更多已被spark替代。

Mapreduce详解Shuffle过程

标签:宽带   错误   partition   park   shu   merge   rac   回顾   不必要   

原文地址:https://www.cnblogs.com/chenshaowei/p/12335110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!