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

发布时间:2020-05-27 04:42:00 作者:鲸落大叔
来源:网络 阅读:1260

在之前的Hadoop是什么中已经说过MapReduce采用了分而治之的思想,MapReduce主要分为两部分,一部分是Map——分,一部分是Reduce——合

MapReduce全过程的数据都是以键值对的形式存在的
如果你想了解大数据的学习路线,想学习大数据知识以及需要免费的学习资料可以加群:784789432.欢迎你的加入。每天下午三点开直播分享基础知识,晚上20:00都会开直播给大家分享大数据项目实战。

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

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

工作原理
这里写图片描述

推荐阅读:
  1. MongoDB:MapReduce基础及实例
  2. 二、MapReduce基本编程规范

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

科技 大数据 mapreduce

上一篇:数据库事务的四大特性和隔离级别

下一篇:【小白到大牛之路12】交换机后台管理之端口管理的再次优化

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》