hadoop mapreduce详细过程分析

来源:互联网 发布:淘宝网丝巾韩杰 编辑:程序博客网 时间:2024/06/05 17:21

hadoop  mapreduce详细过程分析

hadoop在工业界目前已经是公认的大数据通用存储和分析平台。hadoop提供了一个可靠的共享存储和分析系统。hadoop最核心的两大部分hdfs和mapreduce。hdfs实现数据的存储,mapreduce实现数据的分析和处理。
现在我来聊一聊mapreduce的基本过程。面对大量的数据,mapreduce采用如下的步骤来对数据进行分析和处理。
1、map
2、combiner
3、shuffle
4、reduce

下面来一次说明整个mapreduce的过程。
1、map。map的主要作用是把待处理的数据整理成(key,value)的形式。
2、combiner。conbiner过程是可选的,数据优化mapreduce的一个步骤。它的主要功能是在shuffle前先对map产生的数据进行处理,为后面的shuffle过程节省时间。
3、shuffle。shuffle过程又称为“洗牌”,意思是根据分析逻辑对(key,value)进行处理。得到(key,[value1,value2...])这样的数据结构,作为输入,传递给reduce。
4、reduce。reduce的主要作用是把shuffle过程输出的数据做最后的处理,然后输出结果。


下面用一个经典的例子说明一下上述过程:
wordcount程序,计算单词的总数。
输入:aa,bb,cc,dd,aa,bb,aa,dd,aa,dd
输出:(aa,4,) (bb,2) (cc,1) (dd,3)

1、map
(aa,1) (bb,1) (cc,1)(dd,1) (aa,1) (bb,1) (aa,1) (dd,1) (aa,1) (dd,1)

2、combiner(假设,前四个在同一台节点上,中间的三个在一台节点上,最后的三个在一台节点上)
节点1:(aa,1) (bb,1) (cc,1) (dd,1)
节点2:(aa,2) (bb,1)
节点3:(dd,2) (aa,1)

3、shuffle
(aa,[1,2,1]) (bb,[1,1]) (cc,[1]) (dd,[1,1,2])

4、reduce求出每个word的总数
(aa,4,) (bb,2) (cc,1) (dd,3)

0 0
原创粉丝点击