前言

  在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议。

  接下来,数据被会被送往一个个Map节点中去,这也无异议。

  下面问题来了:数据在被Map节点处理完后,再何去何从呢?

  这就是本文探讨的话题。

Shuffle

  在Map进行完计算后,将会让数据经过一个名为Shuffle的过程交给Reduce节点;

  然后Reduce节点在收到了数据并完成了自己的计算后,会将结果输出到Hdfs。

  那么,什么是Shuffle阶段,它具体做什么事情?

  需要知道,这可是Hadoop最为核心的所在,也是号称“奇迹出现的地方“  = =#

Shuffle具体分析

  首先,给出官方对于Shuffle流程的示意图:

  

  Shuffle过程植入于Map端和Reduce端两边

  1. Map端工作:

    a. 分区:根据键值对的Key值,选定键值对所属的Partition区间(与Reduce节点对应)。

    b. 排序:对各分区内的键值对根据键进行排序。

    c. 分割:Map端的结果先是存放在缓冲区内的,如果超出,自然就要执行分割的处理,将一部分数据发往硬盘。

    d. 合并:对于要发送往同一个节点的键值对,我们需要对它进行合并。(这一步很可能针对硬盘,对于海量数据处理,缓冲区溢出是很正常的事情)

  2. Reduce端工作:

    a. Copy:以HTTP的方式从指定的Map端拉数据,注意是Map端的本地磁盘。

    b. 合并:一个Reduce节点有可能从多个Map节点获取数据,获取到之后

    c. 排序:对各分区内的键值对根据键进行排序。和Map端操作一样。

小结

  对于这部分的内容,以后有机会做Hadoop性能方面的工作时,会继续学习研究。

  

Map/Reduce 工作机制分析 --- 数据的流向分析的更多相关文章

  1. 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析

    前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...

  2. Map/Reduce 工作机制分析 --- 作业的执行流程

    前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...

  3. 第九篇:Map/Reduce 工作机制分析 - 作业的执行流程

    前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...

  4. Map/Reduce 工作机制分析 --- 错误处理机制

    前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...

  5. 第十一篇:Map/Reduce 工作机制分析 - 错误处理机制

    前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...

  6. 机器学习等知识--- map/reduce, python 读json数据。。。

    map/ reduce 了解: 简单介绍map/reduce 模式: http://www.csdn.net/article/2013-01-07/2813477-confused-about-map ...

  7. DataNode的工作机制

    DataNode的工作机制 一个数据块在DataNode以文件的形式在磁盘上保存,分为两个文件,一个是数据本身, 一个是元数据信息(包括数据的长度,校验和,时间戳) 1.DataNode启动后,向Na ...

  8. Analyze Data 分析数据

    In this lesson, you will learn how to add the Analysis functionality to your application. For this p ...

  9. python数据处理(七)之数据探索和分析

    1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...

随机推荐

  1. Kanzi入门

    1.安装Kanzi. 2.使用Kanzi studio创建工程. Kanzi创建的工程会包含以下目录结构: 其中, Tool_project文件夹中存放的是设计师设计的工程,包含kanzi UI的工程 ...

  2. Consul Template的简单使用

    Consul Template的使用 1安装 地址 https://github.com/hashicorp/consul-template/releases wget https://release ...

  3. Windows下面安装easy_install报UnicodeDecodeError: 'ascii' codec can't decode byte解决方法

    在运行python ez_setup.py install后, 发现是在下载并解压setuptools-2.1,并运行setup.py时出现如下错误: 提示D:\Python27\lib\mimety ...

  4. java高薪之路__009_网络

    1. InetAddress类2. Socket: IP地址和端口号的结合,socket允许程序把网络连接当成一个流,数据在两个socket间通过IO传输, 通信的两端都要有socket. 主动发起通 ...

  5. STM32学习笔记(六) SysTick系统时钟滴答实验(stm32中断入门)

    系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难 ...

  6. windows下开启mysql远程访问

    USE mysql;SELECT * FROM USER ; 直接修改user=root host=127.0.0.1为% FLUSH PRIVILEGES;

  7. 中国Linux源镜像站大全

    原文链接:http://www.centoscn.com/yunwei/news/2012/1227/131.html 一.国内的linux源镜像站点: 1.企业源:阿里云开源镜像站: http:// ...

  8. Android Studio UML 插件 PlantUML 使用语法

    活动标签(activity label)以冒号开始,以分号结束. 文本格式支持creole wiki语法. 活动默认安装它们定义的顺序就行连接. @startuml :Hello world; :Th ...

  9. apache log4j日志工具使用入门[maven 项目配置]

    简单的介绍下Maven项目中有关org.apache.log4j.Logger的使用.[1]首先我们需要找到 org.apache.log4j.Logger的坐标,并配置到POM.xml <de ...

  10. 配置jdk

    java_home :D:\apps\common\jdk\jdk8\jdk18045\jdk1.8.0_45 classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HO ...