MapReduce编程五步走

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程序运行的时候指定一个路径即可

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱若手握流沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值