【云计算】MapReduce编程模板及shuffle过程简介
小标 2019-01-23 来源 : 阅读 1471 评论 0

摘要:本文主要向大家介绍了【云计算】MapReduce编程模板及shuffle过程简介,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】MapReduce编程模板及shuffle过程简介,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


MapReduce运行流程(7步):


作业启动>>>作业初始化>>>任务调度(Yarn)>>>map>>>shuffle>>>reduce>>>作业完成


MapReduce将整个并行计算过程抽象到两个函数:


Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。 Reduce(化简):对一个列表的元素进行合并。 一个简单的MapReduce程序只需要指定map()、reduce()、input和output,剩下的事由框架完成。 MapReduce模板:



 


MapReduce编程模板类结构图:



 


参考代码:


Mapper处理:


private Text mapOutputKey = new Text();


private LongWritable mapOutputValue = new LongWritable(1);


……


String lineValue = value.toString();


String[] splits = lineValue.split("\t");


for (String split : splits) {


mapOutputKey.set(split);


context.write(mapOutputKey, mapOutputValue);


}


Reduce处理:


private LongWritable outputValue = new LongWritable();


……


long sum = 0;


for (LongWritable value : values) {


sum += value.get();


}


outputValue.set(sum);


context.write(key, outputValue);


Driver设置Map



 


Driver设置Reduce



 


shuffle:shuffle一部分过程发生在map端,一部分发生在reduce端,如下图框选部分



 


Map端shuffle主要包含7部分:


1.环形缓存区:默认大小100M mapreduce.task.io.sort.mb


2.partition分区:HashPartitioner,决定数据交给哪个reduce处理


3.sort:按照key进行字典顺序排序,为了归约合并


4.combine(可选):默认情况下相当于map阶段reduce


5.spill:当环形缓存区容量达到80M(0.8),会把缓存区的数据写入本地磁盘(不是HDFS)临时目录 mapreduce.map.sort.spill.percent


6.merge:把很多小文件合并成一个大文件


7.compress(可选):减轻网络IO的压力


Reduce端的shuffle相对简单,每个reduce会从map的输出结果中拉取自己对应的分区数据


1.merge 合并:key相同的文件进行合并并放置到一起


2.group 分组:相同key的value值放在一起(list)


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved