关闭

Shuffle工作机制

标签: hadoopshufflemapreduce
2923人阅读 评论(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网站的观点或立场

简单搞定Shuffle机制运行原理

2.4.1 概述 1)mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle; 2)shuffle: ...
  • github_36444580
  • github_36444580
  • 2017-07-16 19:05
  • 409

wordcount详解shuffle机制

最近在学习Hadoop,写过了一些小的程序,但是一直没弄明白mapreduce的实现原理。找了好多有关的博客和资料,他们都是从很底层的实现过程来讲解shuffle的,对于初学者来讲并不是适合学习的材料...
  • zccaogong
  • zccaogong
  • 2016-08-25 14:56
  • 406

Shuffle的性能调优

1.1.1  spark.shuffle.manager 前文也多次提到过,Spark1.2.0官方支持两种方式的Shuffle,即Hash Based Shuffle和Sort Based S...
  • wuzhongdehua1
  • wuzhongdehua1
  • 2016-03-14 15:37
  • 576

Spark 学习: spark 原理简述与 shuffle 过程介绍

Spark学习: 简述总结 Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境.提供了 java,scala, python,R 等语言的调用接口. Spark学习 简述总...
  • databatman
  • databatman
  • 2016-11-03 17:55
  • 12180

彻底理解MapReduce shuffle过程原理

MapReduce的Shuffle过程介绍 Shuffle的本义是洗牌、混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程...
  • TechChan
  • TechChan
  • 2016-11-30 10:59
  • 2088

第7讲:Spark的运行机制和RDD详解

Spark运行原理spark是一个分布式,基于内存的适合迭代计算的大数据计算框架。基于内存也可以基于磁盘,它适于任何规模的数据的计算。
  • Diamonds_ys
  • Diamonds_ys
  • 2016-08-23 16:25
  • 1253

Spark-shuffle机制.pdf

  • 2017-08-18 09:39
  • 7.16MB
  • 下载

Hadoop笔记之map &&shuffle && reduce 工作流程图及其分析

与其说shuffle为mapreduce之间的独立处理函数 不如说是map中数据输入reduce一通道,因为shuffle一部分属于对map task  另一部分为reduce task ...
  • xiaoshunzi111
  • xiaoshunzi111
  • 2015-09-16 14:51
  • 485

Hadoop笔记之shuffle工作流程图及其原理分析

Map函数开始产生输出时,并不是简单地将数据写到本地磁盘,这个过程很复杂,他利用缓冲的方式写到内存,并出于效率的考虑进行与排序
  • xiaoshunzi111
  • xiaoshunzi111
  • 2015-09-15 14:02
  • 685

hadoop shuffle机制中针对中间数据的排序过程详解(源代码级)

在所有公开资料中,很少有对Hadoop 中间数据的sort过程进行详细介绍的。如果想要深入了解hadoop对中间数据的排序机制,只有通过阅读源代码才能达到。而hadoop的这段代码本身具有非常大的迷惑...
  • RiverM
  • RiverM
  • 2011-10-18 14:11
  • 8605
    个人资料
    • 访问:670673次
    • 积分:6867
    • 等级:
    • 排名:第3941名
    • 原创:106篇
    • 转载:37篇
    • 译文:11篇
    • 评论:207条
    博客专栏
    个人联系方式
    更多交流
    最新评论