大数据 爬虫Python AI Sql大数据大数据,机器学习,人工智能

以MapReduce编程五步走为基础,说MapReduce工作原

2018-06-15  本文已影响16人  Alukar

MapReduce采用了分而治之的思想,MapReduce主要分为两部分,一部分是Map——分,一部分是Reduce——合

MapReduce全过程的数据都是以键值对的形式存在的

首先,我们假设我们有一个文件,文件中存了以下内容

hive spark hive hbase 

hadoop hive spark 

sqoop flume scala

这里涉及到一个偏移量(一个字符或空格为1位) 

第一行的偏移量为0,内容为“hive spark hive hbase” 

第二行的偏移量为21,内容为“hadoop hive spark” 

第三行的偏移量为39,内容为“sqoop flume scala”

Map

输入 

MapReduce处理的数据是从HDFS中读出来的 

以偏移量为key,内容value,则存在: 

(0,“hive spark hive hbase”) 

(21,“hadoop hive spark”) 

(39,“sqoop flume scala”)

输出 

将输入的value中的词以空格为分割逐个取出来做key,1做value存起来 

(hive,1) 

(spark,1) 

(hive,1) 

(hbase,1) 

(hadoop,1) 

注意:有多少行,Map就要循环做几次

shuffle(之后会详细说,这里简单解释)

输入 

map的输出

输出 

相同的key的value进行合并 

这里合并不是进行累加或别的运算,而是合并到一个集合中 

(hive,[1,1,1]) 

(spark,[1,1]) 

(hbase,[1]) 

(hadoop,[1]) 

。。。。。。

reduce

输入 

shuffle的输出

输出 

根据业务将value进行合并 

例如当前的业务就会将value进行累加

MapReduce处理数据五步走

整个MapReduce程序,所有数据以(key,value)形式流动

第一步:input

正常情况下不需要写代码 

仅仅在MapReduce程序运行的时候指定一个路径即可

第二步:map(核心)

map(key,value,output,context) 

key:每行数据的偏移量——基本没用 

value:每行数据的内容——真正需要处理的内容

第三步:shuffle

不需要写代码

第四步:reduce(核心)

reduce(key,value,output,context) 

key:业务需求中的key 

value:要聚合的值

第五步:output

正常情况下不需要写代码 

仅仅在MapReduce程序运行的时候指定一个路径即可

工作原理

想学习大数据或者想学习大数据的朋友,我整理了一套大数据的学习视频免费分享给大家,从入门到实战都有,大家可以加微信:Lxiao_28获取,还可以入微信群交流!(备注领取资料,真实有效哦)。

上一篇下一篇

猜你喜欢

热点阅读