文档章节

Hadoop中的Shuffle(17)

肖鋭
 肖鋭
发布于 2014/03/04 21:56
字数 338
阅读 73
收藏 0

Shuffle描述着数据从Map Task输出到Reduce Task输入的这段过程。

Map端

            1、每个Map有一个环形内存缓冲区,用于存储任务的输出,默认大小100MB(io.sort.mb属性),一旦达到阀值

                 0.8(io.sort.spill.percent),一个后台线程把内容写到(spill)磁盘的指定目录(mapred.local.dir)下的新建的一个

                 溢出文件。

            2、在写入磁盘前,要Partitioner,Sort,如果有Combiner(聚合),Combiner排序后在写入数据。

            3、等最后把记录写完,合并全部溢出写文件为一个分区且排序的文件。

Reduce端

             1、Reduce通过Http方式得到输出的文件的分区。

             2、TaskTracker为分区文件运行Reduce任务。复制阶段把Map输出复制到Reduce的内存或磁盘。一个Map任                     务完成,Reduce就开始复制输出。

             3、排序阶段合并Map输出,然后走Reduce阶段。

             注意:在有些情况下,也有可能没有任何的Reduce,当前数据处理可以完全并行时,即无需混洗(shuffle),可能

                       会出现无Reduce任务的情况,在这种情况下,唯一的非本地节点数据传输是Map任务将结果写入HDFS.


                                                                                                                        Name:Xr

                                                                                                                          Date:2014-03-04 21:55

© 著作权归作者所有

肖鋭
粉丝 10
博文 62
码字总数 29531
作品 0
朝阳
程序员
私信 提问
win7下安装hadoop2.7.3报错了

hadoop-mapreduce-client-shuffle-2.7.3.jar;F:\cywin2\home\Administrator\hadoop-2. 7.3\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.7.3.jar STARTUP_MSG: build = https://git-......

天池番薯
2017/07/19
118
1
【互动问答分享】第17期决胜云计算大数据时代Spark亚太研究院公益大讲堂

“决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 【第17期互动问答分享】 Q1:为了加快spark shuffle 的执行速度是否可以把sparklocaldirs 指向一块固态硬盘上面,这样做是否有效果...

Spark亚太研究院
2014/10/17
195
0
hadoop二次排序的个人理解

看了多篇文档,现总结自己对二次排序的理解; 1.流程 各个阶段; input ---> split ——> recordreader ——> 形成复合键值对textpair ——> 分区(setGroupingComparatorClass设置的分区方法...

仙剑奇侠
2014/11/18
387
0
一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序

一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 Java序列化(java.io.Serializable) ...

别叫小伙
2017/09/20
0
0
Apache Spark探秘:Spark Shuffle实现

Apache Spark探秘:Spark Shuffle实现 三月 26, 2014 at 9:40 上午 by Dong Tags: Spark 作者:Dong | 新浪微博:西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明...

片刻
2015/12/15
128
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL-基于SELECT查询的UPDATE查询

我需要检查(从同一张表)基于日期时间的两个事件之间是否存在关联。 一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。 如果第一个事件在第二个事件之前完成...

javail
47分钟前
60
0
将PostgreSQL数据库复制到另一台服务器

我正在将生产PostgreSQL数据库复制到开发服务器。 什么是最快,最简单的方法? #1楼 pg_dump the_db_name > the_backup.sql 然后将备份复制到您的开发服务器,并使用以下命令进行还原: ps...

技术盛宴
今天
39
0
[译]软件架构师之路

今天给大家带来一篇自己翻译的干货《软件架构师之路》。本周Github上升很快的项目。其内容对致力于成为软件架构师(不论前后端)的同学应该都会有极大的帮助。 项目地址: 中文地址 https://...

gamedilong
今天
41
0
聊聊artemis的ExpiryScanner

序 本文主要研究一下artemis的ExpiryScanner startExpiryScanner activemq-artemis-2.11.0/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl......

go4it
今天
51
0
MySQL概述

MySql主要概念 参考:https://snailclimb.gitee.io/javaguide/#/database/MySQL MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数...

Las_Vegas
今天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部