Map/Reduce 工作机制分析 --- 数据的流向分析
前言
在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 工作机制分析 --- 数据的流向分析的更多相关文章
- 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析
前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...
- Map/Reduce 工作机制分析 --- 作业的执行流程
前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...
- 第九篇:Map/Reduce 工作机制分析 - 作业的执行流程
前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...
- Map/Reduce 工作机制分析 --- 错误处理机制
前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...
- 第十一篇:Map/Reduce 工作机制分析 - 错误处理机制
前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...
- 机器学习等知识--- map/reduce, python 读json数据。。。
map/ reduce 了解: 简单介绍map/reduce 模式: http://www.csdn.net/article/2013-01-07/2813477-confused-about-map ...
- DataNode的工作机制
DataNode的工作机制 一个数据块在DataNode以文件的形式在磁盘上保存,分为两个文件,一个是数据本身, 一个是元数据信息(包括数据的长度,校验和,时间戳) 1.DataNode启动后,向Na ...
- Analyze Data 分析数据
In this lesson, you will learn how to add the Analysis functionality to your application. For this p ...
- python数据处理(七)之数据探索和分析
1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...
随机推荐
- [翻译]LSP程序的分类
翻译的太垃圾,不建议其它人阅读本文. Note:LSP现在已经不推荐使用.自windows8和windows Server2012开始,使用Windows Filtering Platform. Wi ...
- O(1) Check Power of 2 - LintCode
examination questions Using O(1) time to check whether an integer n is a power of 2. Example For n=4 ...
- 原生cookie
出于浏览器的安全性限制,从WEB应用程序中访问用户本地文件系统是有许多限制的.但是WEB站点的开发人员可以使用cookie,将少量信息保存在用户本地硬盘的指定空间中. document对象的cooki ...
- FTPS链接服务器
一.首先登录ftp服务器:命令行 lftp user@ip 上传:put 下载: get 二. 关于FTP传输模式与传输的方式 众所周知,FTP传输有两种工作模式,Active Mode和Pass ...
- java complier compliance level问题引发的思考
http://blog.csdn.net/shan9liang/article/details/17266519 ******************************************* ...
- mac下使用brew安装ffmpeg支持x265
使用brew install ffmpeg 安装ffmpeg默认是没有支持x265的, 使用brew info ffmpeg 获取安装选项帮助, 使用brew reinstall ffmpeg --w ...
- cube定时器延时不准确原因
昨天晚上测试32cube配置好定时器,以1ms为一次中断,然后在程序中做了一个1s的延时,结果发现实际延时5s左右,百思不得其解,仔细查看cube配置也没问题.最后我打开生成工程文件夹里面的ioc文件 ...
- Bitmap旋转方法
最近在做一个ORC图片解析的功能,要求解析出数字 但是发现他解析只能解析横着的图片,然后我拍照的时候拍的是竖直照片,当然你也可以去旋转照相机的屏幕 但是我这里为了方便选择的是竖直拍出来 然后,旋转下咯 ...
- SPSS数据分析—卡方检验
t检验和方差分析主要针对于连续变量,秩和检验主要针对有序分类变量,而卡方检验主要针对无序分类变量(也可以用于连续变量,但需要做离散化处理),用途同样非常广泛,基于卡方统计量也衍生出来很多统计方法. 卡 ...
- 用c语言编写直接插入法
#include<stdio.h> //直接插入法 void D_insert(int s[],int n); int main() { int i; ]; printf("pl ...