出处:http://langyu.iteye.com/blog/992916#comments

hadoop核心:MapReduce原理。
MR的核心是shuffle,被称为奇迹发生的地方。
shuffle,弄乱,洗牌的意思。partition 分区,sort 排序,spill溢出,disk 磁盘
下面是官方对shuffle的配图: phase 阶段,fetch 最终,merge 合并
看不懂没关系,心里有个印象就行。
下面说说我们对shuffle过程的期望:
1,完整的从map task端把数据拉取到reduce端。
2,在跨节点拉取数据时,尽可能减少对带宽的不必要消耗。
3,减少磁盘IO对task执行的影响。
详细配图,shuffle过程的map 端 :

首先,我们要知道是,每个map task 都有一个环形缓冲区在内存memory中,用来存储map的输出结果。然后,当达到80%的时候,就会形成一个临时文件,存储到磁盘。当整个map结束,再对磁盘上的所有文件进行Merge合并生成“最终文件”。等待Reducer拉取。
1,数据来源HDFS上的block块,block与split可以多对一,默认的是一对一的关系
2,数据经过map task执行后,形成K/V对。同时在这里就开始进行分区partition。以及,key,value,partitions,被序列化成字节数组,也就是说落到磁盘上的是字节数组
分区partition:是对key进行hash取值,然后对reduce task数量取模。进行的分区
3,spill溢写到磁盘的数据,是sort有序的。combiner:如果有很多a,1 a,1 a,1这种数据,会有一个combiner过程,相当于在一个map task上进行reduce,只不过reduce只允许在最后阶段那一端称呼,所以在这里只能叫combiner,功能是一样的。
4,就是溢写到disk磁盘上的临时小文件《也就是那一个个“80%”的溢写临时小文文件》,会进行一个Merge合并。最终在每一个map task上,都Merge成一个文件,这个文件也就是reduce一直在拉取的map task的最终结果
在map task进行时,reduce task会一直联系它,问它完成了没。
详细配图,shuffle过程的reduce 端:

1,map task结束后,reduce会启动一些数据copy线程Fetcher取样器。通过HTTP请求到map task 端的task tracker,获取到map task端的输出文件。
2,继续Merge,这个Merge是把多个从map task端copy过来的数值进行Merge合并。
Merge的方式有三种:内存到内存 《不启用》
内存到磁盘 《一直在进行》
磁盘到磁盘 《生成最终的文件》
3,在磁盘上merge后形成“最终文件”,当这个reduce task的最终文件确定下来,那么整个shuffle也就结束了,执行Reducer,结果放到HDFS上。

小鸟刚起步,看大神写的之后,自己的简单领悟总结。有不对的欢迎留言指正。

赠人玫瑰,手有余香!

MapReduce之奇迹发生的地方:shuffle相关推荐

  1. 吃剩的苹果、长芽的土豆别扔!会有奇迹发生!

    吃剩的苹果.长芽的土豆别扔!会有奇迹发生! 2016-10-16 未来网 水果和蔬菜放太久了,不新鲜有时会发芽,很多人都直接扔掉!其实,他们的用处有很多,快看下面 ↓↓↓ 图片,长芽的马铃薯变身!记得 ...

  2. 用两个手指夹住耳朵揉15下,奇迹发生了!

    用两个手指夹住耳朵揉15下,奇迹发生了! 2016-04-14 中医认为,高血压.糖尿病.颈椎病都要重视自调自解,以下这7个简单手法,学会坚持做,消病很有用!可以告诉爸妈哦~ 中医手法演示 一.赶走高 ...

  3. 【转】MapReduce:详解Shuffle过程

    --转自:{http://langyu.iteye.com/blog/992916} Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle ...

  4. mapreduce shuffle过程

    转自http://langyu.iteye.com/blog/992916 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了 ...

  5. MapReduce核心map reduce shuffle (spill sort partition merge)详解

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java AP ...

  6. MapReduce程序的运行全貌

    为了更详细地探讨mapper和reducer之间的关系,并揭示Hadoop的一些内部工作机理,现在我们将全景呈现WordCount是如 何执行的,序号并非完全按照上图. 1 . 启动 调用驱动中的Jo ...

  7. hadoop: Shuffle过程详解 (转载)

    原文地址:http://langyu.iteye.com/blog/992916 另一篇博文:http://www.cnblogs.com/gwgyk/p/3997849.html Shuffle过程 ...

  8. Hadoop计算中的Shuffle过程

    2019独角兽企业重金招聘Python工程师标准>>> Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce,Shuffle是必须要了解的 ...

  9. 【MapReduce】分区(分区实战案例)、Combiner、Shuffer

    分区(分区实战案例).Combiner.Shuffer 1 分区 2 根据部门号建立分区 3 Combiner 4 Shuffer 手动反爬虫,禁止转载: 原博地址 https://blog.csdn ...

最新文章

  1. 车智汇模式系统技术开发数据
  2. input上传图片;input上传file;vue上传图片。
  3. Change Value to Reference(将值对象改为引用对象)
  4. 工作回报如何影响人的生产力_如何在减少工作的同时提高生产力
  5. 20万+奖金池,“智在飞翔”2021 • 无人飞行器智能感知大赛,战火重燃 • 等你来战!!...
  6. matlab可视化大学物理学_传输矩阵法在大学物理波动光学教学中的应用
  7. 线上数据库增加字段导致服务请求超时总结
  8. 微信公众号里面服务器配置关闭,微信公众号服务器配置无法修改
  9. 物联网嵌入式学习路线
  10. 程序员保健身体的几点秘诀
  11. 2 创造你的物理世界(1)
  12. 适合后端开发人员的html笔记
  13. 使用Python将一个excel的某些内容导入到新的excel中
  14. Multisim基础 交流电源AC的Voltage offset的含义
  15. Unity_ClickToShow_FadeInAndOut
  16. h5调起手机拍照功能
  17. python中uppercase是什么意思_python判断大小写并转换_python中string模块相关方法(大小写转换,字符串条件判断)....
  18. 评论:26岁成都唐爽发现成果惊动奥巴马--意外发现新材料极可能成下一代电脑芯片...
  19. ChatGPT使用详细步骤
  20. 华大(现在改名小华半导体)芯片启动文件详细讲解

热门文章

  1. 鲜枣课堂线上课程秋季促销,明天正式开始!
  2. css隐藏滚动条-适用于chrome、opera、Firefox
  3. 计算机基础学到了哪些知识,计算机基础知识汇总
  4. 统计数据也说谎?如何跳出数据分析盲区
  5. 老徐WEB:学好这几个HTML标签就够用了(一)
  6. centos linux安装vsftp,CentOS安装vsftp最新版本
  7. 恶意app分析及防范
  8. python locals_Python中globals和locals的区别
  9. 龙之谷2微信哪个服务器,龙之谷2手游微信2区黑色山脉开服时间表_龙之谷2手游新区开服预告_第一手游网手游开服表...
  10. python彩虹代码_python绘制彩虹图