登录
|
注册
|
QQ账号登录
|
常见问题
联系我们:
我要上传
首页
浏览
幼儿/小学教育
中学教育
高等教育
研究生考试
外语学习
资格/认证考试
论文
IT计算机
经济/贸易/财会
管理/人力资源
建筑/环境
汽车/机械/制造
研究报告
办公文档
生活休闲
金融/股票/期货
法律/法学
通信/电子
医学/心理学
行业资料
文学/艺术/军事/历史
我的淘豆
我要上传
帮助中心
复制
下载此文档
MapReduce详解Shuffle过程.docx
文档分类:
IT计算机
|
页数:约11页
举报非法文档有奖
分享到:
1
/
11
下载此文档
搜索
下载此文档
关闭预览
下载提示
1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
2.下载该文档所得收入归上传者、原创者。
3.下载的文档,不会出现我们的网址水印。
同意并开始全文预览
(约 1-6 秒)
下载文档到电脑,查找使用更方便
下 载
还剩?页未读,
继续阅读
分享到:
1
/
11
下载此文档
文档列表
文档介绍
MapReduce详解Shuffle过程.docx
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这 里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获。如果你对这篇文章有任何疑问或建议请留言到后面,谢谢!
Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java (List)方法,它会随机地打乱参数list里的元素顺序。如果你不知道MapReduce里 Shuffle是什么,那么请看这张图:
这张是官方对Shuffle过程的描述。但我可以肯定的 是,单从这张图你基本不可能明白Shuffle的过程,因为它与事实相差挺多,细节也是错乱的。后面我会具体描述Shuffle的事实情况,所以这里你只 要清楚Shuffle的大致范围就成-怎样把map task的输出结果有效地传送到reduce端。也可以这样理解, Shuffle描述着数据从map task输出到reduce task输入的这段过程。
在Hadoop这样的集群环境中,大部分map task与reduce task的执行是在不同的节点上。当然很多情况下Reduce执行时需要跨节点去拉取其它节点上的map task结果。如果集群正在运行的job有很多,那么task的正常执行对集群内部的网络资源消耗会很严重。这种网络消耗是正常的,我们不能限制,能做的 就是最大化地减少不必要的消耗。还有在节点内,相比于内存,磁盘IO对job完成时间的影响也是可观的。从最基本的要求来说,我们对Shuffle过程的 期望可以有:
完整地从map task端拉取数据到reduce 端。
在跨节点拉取数据时,尽可能地减少对带宽的不必要消耗。
减少磁盘IO对task执行的影响。
OK,看到这里时,大家可以先停下来想想,如果是自己来设计这段Shuffle过程,那么你的设计目标是什么。我想能优化的地方主要在于减少拉取数据的量及尽量使用内存而不是磁盘。
,如果与你所认识的Shuffle过程有差别,不吝指出。我会以WordCount为例,并假设它有8个 map task和3个reduce task。从上图看出,Shuffle过程横跨map与reduce两端,所以下面我也会分两部分来展开。
先看看map端的情况,如下图:
上图可能是某个map task的运行情况。拿它与官方图的左半边比较,会发现很多不一致。官方图没有清楚地说明partition, sort与combiner到底作用在哪个阶段。我画了这张图,希望让大家清晰地了解从map数据输入到map端所有数据准备好的全过程。
整个流程我分了四步。简单些可以这样说,每个map task都有一个内存缓冲区,存储着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一个临时文件的方式存放到磁盘,当整个map task结束后再对磁盘中这个map task产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task来拉数据。
当然这里的每一步都可能包含着多个步骤与细节,下面我对细节来一一说明:
1. 在map task执行时,它的输入数据来源于HDFS的block,当然在MapReduce概念中,map task只读取split。Split与block的对应关系可能是多对一,默认是一对一。在WordCount例子里,假设map的输入数据都是像 “aaa”这样的字符串。
2. 在经过mapper的运行后,我们得知mapper的输出是这样一个key/value对: key是“aaa”, value是数值1。因为当前map端只做加1的操作,在reduce task里才去合并结果集。前面我们知道这个job有3个reduce task,到底当前的“aaa”应该交由哪个reduce去做呢,是需要现在决定的。
MapReduce提供Partitioner接口,它的作用就是根据key或v
MapReduce详解Shuffle过程 来自淘豆网m.daumloan.com转载请标明出处.
猜你喜欢
2025年4-3-1-三角形等高模型与鸟头模型.教师版..
39页
2025年高考总复习历史练习单元检测8含解析
11页
2025年高中物理--第45节-液体的性质-液晶-液体..
4页
2025年高中体育部分优秀教案
139页
林业大学园林树木学课件
18页
2025年自动控制原理试题库完整
14页
2025年组织文化的作用
4页
2025年第一章《走进化学世界》考点知识点整理..
9页
2025年生物必修二第一章测试题
4页
2025年特种经济动物生产学-题目以及答案
9页
2025年湿疹的治疗
24页
2025年浙江省7月高等教育自学考试民航乘务英语..
6页
2025年流动负债的财务效应分析
3页
2025年毛概第二章练习题
3页
2025年桥梁勘察组织方案
19页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
11
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
莫欺少年穷
文件大小
:
325 KB
时间
:
2020-12-30
相关标签
生化危机7攻略
生化危机6游戏攻略
生化危机6攻略
生化危机6艾达王攻略
生化危机5攻略
生化危机4攻略
生化危机3游戏攻略
生化危机3攻略
生化危机2重置版攻略
生化危机2重制版攻略
计算机原理
PHP资料
linux/Unix相关
C/C++资料
Java
.NET
windows相关
开发文档
管理信息系统
软件工程
网络信息安全
网络与通信
图形图像
行业软件
人工智能
计算机辅助设计
多媒体
软件测试
计算机硬件与维护
网站策划/UE
网页设计/UI
网吧管理
电子支付
搜索引擎优化
服务器
电子商务
Visual Basic
数据挖掘与模式识别
数据库
Web服务
网络资源
Delphi/Perl
Python
CSS/Script
Flash/Flex
手机开发
UML理论/建模
并行计算/云计算
嵌入式开发
计算机应用/办公自动化
SEO
最近更新
家政服务公司创业计划书(10)
2025年国家电网招聘之公共与行业知识考试题..
2025年国家电网招聘之公共与行业知识考试题..
实践出真知的议论文范文
实习报告——青岛啤酒
2025年国家电网招聘之公共与行业知识考试题..
2025年国家电网招聘之电网计算机考试题库附..
2025年学校六届三次教代会主持词
2025年国家电网招聘之电网计算机考试题库附..
2025年国家电网招聘之经济学类考试题库【有..
关于年级班主任工作计划汇总
2025年国家电网招聘之通信类考试题库【全优..
2025年国家电网招聘之经济学类考试题库含答..
2025年国家电网招聘之经济学类考试题库附完..
铸造镍基高温合金中初生MC碳化物热稳定性研..
2025年土地登记代理人之土地登记相关法律知..
钢铁企业轧线区生产时间调度与物流空间调度..
2025年教学反思参考5七律-长征
钛和硼在锰钛硼钢中的作用研究
[写师生之间的800字作文范文]师生之间作文范..
2021重庆梁平中学数学七年级上册水平测试试..
2025年普法学法知识竞赛题库及参考答案(b卷..
2025年陆游游山西村阅读答案-中考真题
2025年普法学法知识竞赛题库带答案(突破训..
关于大学学生会财务部工作计划范文
2025年机械员考试题库新版
2025年机械员考试题库完整版
关于商业计划范文
2025年汽车维修工技能理论考试题库及参考答..
2025年汽车维修工技能理论考试题库及一套参..
在线
客服
微信
客服
意见
反馈
手机
查看
返回
顶部