关闭

Shuffle工作机制

标签: hadoopshufflemapreduce
2726人阅读 评论(0) 收藏 举报
分类:

Hadoop生态系统中,Shuffle是MapReduce的核心机制,它肩负了从Map到Reduce的底层过程。

这里写图片描述

  1. 一个切片input split对应一个mapper,mapper将数据写入到环形缓冲区;
  2. 这个环形缓冲区默认是100M,当它达到默认阀值80%的时候,它会将数据溢写(spill)到磁盘,在写磁盘过程中,map继续输出被写到缓冲区,如果在此期间缓冲区被填满,map会阻塞直到缓冲区被填满;
  3. 溢写到磁盘的时候它并不是简单地将数据溢写,而是先进行分区(Partitioner有自定义就用自定义的,没有就用HashPartitioner),再在每个分区里对数据进行合并(Combiner);
  4. 最后它会将数据合并成一个大文件,并且是相同分区号的数据进行合并;
  5. 合并之后每个分区里面的数据再按照Key2进行合并,计算完成之后向上级提交,Hadoop1.0是TaskTracker,Hadoop2.0是MrAppMaster;
  6. Reducer通过心跳线程不停地到上级去取任务,1.0是越级到JobTracker来取,2.0是到MrAppMaster来取,Reducer得到映射关系之后通过http下载数据,下载很多小文件,再进行合并,作为输入,计算之后输出到HDFS。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:452738次
    • 积分:5471
    • 等级:
    • 排名:第5731名
    • 原创:101篇
    • 转载:34篇
    • 译文:10篇
    • 评论:151条
    联系方式
    QQ : 930999349
    博客专栏
    最新评论