Hadoop系列——MapReduce过程简版
来源:互联网 发布:淘宝客服电话人工接听 编辑:程序博客网 时间:2024/06/02 21:19
借助一位大牛的图:
我们可以看到图中的几大步骤(大致上分成6步):
Map: Split[拆解] —— Partition[分区] —— Sort[排序] —— Combine[初次整合]——Copy[拷贝下载]——Reduce:Merge[二次整合]
Split:将文件中的行信息分拆成若干split,再将行信息打散成独立部分,以信息内容为key,以“1”为value;每个输入片的大小是固定的。默认情况下,输入片(InputSplit)的大小与数据块(Block)的大小是相同的。如果数据块(Block)的大小是默认值64MB,输入文件有两个,一个是32MB,一个是72MB。那么小的文件是一个输入片,大文件会分为两个数据块,那么是两个输入片。一共产生三个输入片。每一个输入片由一个Mapper进程处理。
(ex:如两行数据,第一行 a b c d a b c d ;
第二行a b c d a b c d ;
经过Split后为Split0:Partition1 a 1,a 1 ,b 1,b 1
Partition2 c 1,c 1 , d 1,d 1
Split2:Partition1 a 1,a 1 ,b 1,b 1
Partition2 c 1,c 1 , d 1,d 1 )
Partition:用hash将key散列为若干区,方便后面的拷贝下载;默认是只有一个区。分区的数量就是Reducer任务运行的数量。
(ex:将Split0中的数据分成Partition1、Partition2,
将Split1中的数据分成Partition1、Partition2)
Sort:将key排序;
Combine:将key相同的整合,并更新value为其出现频率,其实质是压缩数据,方便后续数据的传输;
(ex:整合后的Split0:Partition1 a 2 ,b 2 Partition2 c 2 , d 2;
Split1:Partition1 a 2 ,b 2 Partition2 c 2 , d 2;)
Copy:由不同的Reduce节点下载各自分区的数据;
(ex:Reduce1节点 下载 Split0中的Partition1和Split1中的Partition1 ,
由Reduce2节点 下载 Split0中的Partition2和Split1中的Partition2 )
Merge:将各个Reduce节点中的Partition整合,有相同的key的就合并,并更新value值为其频率;当然Merge完了之 后也会进行一次排序;最后生成HDFS文件。
(ex:整合后的Reduce1:Partition1 a 4,b 4 ;
Reduce2: Partition2 c 4 ,d 4 ;)
- Hadoop系列——MapReduce过程简版
- Hadoop系列——MapReduce 过程详解
- Hadoop——MapReduce
- Hadoop—MapReduce
- Hadoop MapReduce 过程概述
- Hadoop MapReduce 过程概述
- Hadoop -- MapReduce过程
- hadoop的mapreduce过程
- Hadoop-MapReduce过程
- Hadoop MapReduce工作过程
- Hadoop系列——Shuffle过程详解
- hadoop学习之hadoop技术内幕—— mapreduce 过程详解
- Hadoop之MapReduce—Wordcount
- Hadoop MapReduce:详解Shuffle过程
- Hadoop MapReduce过程 源代码解析
- hadoop细节---Mapreduce过程详解
- Hadoop MapReduce具体运行过程
- Hadoop MapReduce的shuffle过程
- OpenCV训练分类器
- druid简单教程
- C API libhdfs
- 不连续取球(取球博弈)
- ??jQuery.fn =jQuery.prototype
- Hadoop系列——MapReduce过程简版
- JSON数据解析
- 更改IP
- 【转载】用BATOOL进行Pro*C程序制造的一点心得
- CVPR2014关于DL的文章列表
- PHP基于数组的分页函数(核心函数array_slice())
- 【Linux】搜集的一些故障诊断时常用命令
- Leetcode【29】:Substring with Concatenation of All Words
- 高通研发出无线充电系统