文档章节

MapReduce -shuffle的过程

止静
 止静
发布于 2014/11/18 22:13
字数 627
阅读 106
收藏 0

前提:你必须对于 MapReduce编程框架有所了解。

概念解释: 

           

        shuffle:简单的名称称为 混洗。 事实上shuffle是一个非常非常简单的概念。简单点来说就是洗牌。

         shuffle:按照固定的规则,就【key,value】而言。


前提

 由于之前一直都是使用的 Hadoop1 ,并未使用 Hadoop Yarn,所以有关shuffle的机制,还请参考最新的底层API


1 : 不管是在Map端,还是Reduce端,不管是Hadoop MapReduce 还是Storm 。 对于数据的内部处理,很多时候都需要

对于是底层的 内存和磁盘做出一个合理的取舍。


 Map端:


                1 : 数据并不是简单的把他直接的写到了磁盘,这个过程比较复杂,他利用了缓冲的方式写到了内存,并且出于效率上的考虑,进行了预排序。

                2:每一个默认的Map任务都会有一个环形的缓存区。这个缓存区用来持有Map的输出,我印象中是100M左右, 一旦达到的固定的必烈,那么就会把内容写到磁盘之中,在写磁盘的过程之中,Map输出继续被写入到缓冲区。

                3:在写入到缓存区之前,会将这个数据进行一次分区和排序(这个分区和排序将会按照reduce的对应关系来生成)

                 4:关于这个分区的数据将通过Http的协议来传递给 Reduce端。


Reduce端:

            Reduce端口的第一个阶段是:copy 阶段,也就是说我们需要把数据从Map端口copy到Reduce端口。 如果Map的端口输出相当的小,那么就会被复制到 Reduce端。


          其次:在拉取到数据之后,我们将进入到了:排序的阶段。  sort phase 阶段,更恰当的来说,是一个合并的阶段,因为排序的阶段已经在Map 端口完成了。只需要在reduce端合并就可以了

           对于MapReduce,之前我也是能实现类qq圈子算法,对于算法,我也是整本算法导论的人。而,如今却忘的一干二净。记忆会消失,不需要的事物会遗忘。


           天道如此。看来之后的道路,适合走项目架构管理,而非技术专家。

© 著作权归作者所有

共有 人打赏支持
止静
粉丝 120
博文 134
码字总数 125762
作品 0
东城
技术主管
Shuffle对MapReduce性能调优

Shuffle对MapReduce性能调优: Shuffle和排序 MapReduce确保每一个reduce的输出都按键排序,系统执行排序的过程---------将map输出作为输入传给reduce--------称为shuffle Shuffle过程是Map...

片刻
2015/11/09
0
0
hadoop 学习笔记:mapreduce框架详解

这个觉得写得特别的详细,有一些细节可能要去看书,会理解的更好点,,,   Mapreduce初析   Mapreduce是一个计算框架,既然是做计算的框架,那么表现形式就是有个输入(input),mapre...

LIPING234
2013/10/25
0
0
架构精讲: Hadoop技术框架和架构演进方向

Apache Hadoop是一个开源软件框架,可安装在一个商用机器集群中,使机器可彼此通信并协同工作,以高度分布式的方式共同存储和处理大量数据。最初,Hadoop 包含以下两个主要组件: Hadoop Dist...

btb5e6nsu1g511eg5xeg
05/15
0
0
一文详解大规模数据计算处理原理及操作重点

作者介绍 李智慧,《大型网站技术架构:核心原理与案例分析》作者。曾供职于阿里巴巴与英特尔亚太研发中心,从事大型网站与大数据方面的研发工作,目前在做企业级区块链方面的开发工作。 大数...

DBAplus社群
08/07
0
0
国内最全最详细的hadoop2.2.0集群的MapReduce的最简单配置

简介 hadoop2的中的MapReduce不再是hadoop1中的结构已经没有了JobTracker,而是分解成ResourceManager和ApplicationMaster。这次大变革被称为MRv2或者YARN,是一次革命性的变化。 配置 在前面...

吴超沉思录
2014/01/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
9分钟前
3
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
29分钟前
0
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
0
0
学习设计模式——中介者模式

1. 认识中介者模式 1. 定义:用一个中介对象来封装一系列的对象交互行为,中介者使得各对象不需要显式的互相引用,从而使其松散耦合,独立的改变他们之间的交互。 2. 结构: Mediator:中介者...

江左煤郎
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部