文档章节

MapReduce -shuffle的过程

止静
 止静
发布于 2014/11/18 22:13
字数 627
阅读 106
收藏 0
点赞 0
评论 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
国内最全最详细的hadoop2.2.0集群的MapReduce的最简单配置

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

吴超沉思录
2014/01/26
0
0
Hadoop mapreduce原理学习

MapReduce模式结构图: 细化图: 最近整了很长一段时间才了解了map reduce的工作原理,shuffle是mapreduce的心脏,了解了这个过程,有助于编写效率更高的mapreduce程序和hadoop调优。自己画了...

zaizai_loong
2013/09/07
0
1
hadoop参数配置(mapreduce数据流)

Hadoop配置文件设定了Hadoop平台运行时各方面属性。大量实验证明,合理的配置会大大提高Hadoop的性能。 在Hadoop-0.19.2版本中,Hadoop配置文件在conf目录下,包括文件hadoop-default.xml和h...

J.J.REN
2012/08/07
0
0
在MongoDB中使用MapReduce

MapReduce是聚合工具的明星。Count、distinct、group能做的上述事情,MapReduce都能做。它是一个能轻松并行化到多个服务器的聚合方法。它会拆分问题,再将各个部分发送到不同的机器上,让每台...

浙大高分网格
2014/03/04
0
0
【ODPS】MapReduce基础

MapReduce处理数据过程主要分成2个阶段:Map阶段和Reduce阶段。首先执行Map阶段,再执行Reduce阶段。Map和Reduce的处理逻辑由用户自定义实现, 但要符合MapReduce框架的约定。 在正式执行Map...

孟飞阳
07/06
0
0
大数据之---Yarn伪分布式部署和MapReduce案例

1、软件环境 本次涉及伪分布式部署只是要主机hadoop01,软件安装参考伪分布式部署终极篇 2、配置yarn和mapreduce 3、提交测试jar计算圆周率 job15248048138350001 job命名格式: jobunix时间...

ycwyong
05/17
0
0
Hadoop计算中的Shuffle过程

 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越...

李超
2015/04/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计神器 - 摹客设计系统上线了 | 晒出你的设计规范,赢iPad Pro!

在国内,设计规范也许还是个不太常用的概念,但是如果你正好有参与互联网公司的产品设计,你应该早就已经体会到设计规范的重要性了。UI设计师总是要花费大量的时间和精力向开发描述一大堆设计...

mo311
8分钟前
0
0
Thymeleaf 使用过程中的一些记录

Thymeleaf格式化时间: th:value="${#dates.format(gw.regDT,'yyyy-MM-ddHH:mm:ss')}" Thymeleaf select反选: <select id="status" name="status" th:field="${gw.status}" th:value="${gw.......

惊尘大人
11分钟前
0
0
istio源码分析之pilot-discovery模块分析

本文分析的istio代码版本为0.8.0,commit为0cd8d67,commit时间为2018年6月18日。 本文为Service Mesh深度学习系列之一: Service Mesh深度学习系列part1—istio源码分析之pilot-agent模块分...

xiaomin0322
16分钟前
0
0
数据库基本操作:增删改查及联表操作

所用软件:SQL Server Management Studio 首先第一步,建立一个表。在这里命名为T1。并在里面填入几条数据。如图: T1 一.查询 查询所有:select * from T1; 按条件查询:select * from T1 ...

小_橙_子
20分钟前
0
0
Crontab作业时间设置

今天,遇到这么一个题目,周一到周五的9:00-16:59之间,每隔两分钟将某个命令运行一次。给的答案是: */2 9-16 * * 1-5 /usr/sbin/somecommand dosomething 乍一看,这个答案不对,应...

大别阿郎
25分钟前
0
0
ES17-JAVA API文档管理

1.保存文档 可以通过json工具把java对象转换成json字符串进行保存,也可以通过内置的帮助类直接构建json格式 /** * 获取客户端 * * @return */public static TransportClie...

贾峰uk
26分钟前
0
0
Python代码规范和命名规范

前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头...

blackfoxya
29分钟前
0
0
联动滑动之一:NestScrollChild和NestedScrollingParent

NestScrollChild和NestedScrollingParent 吐槽一下开源中国竟然标题字数有限制 由于项目中使用了CoordinateLayout来解决联动以及实现炫酷的UI效果,那么必须就要研究一波源码了,毕竟知其然知...

JerryLin123
46分钟前
1
0
cloudera spark2.2 读写hbase

cloudera spark2.2 读写hbase 例子 host = 'bigdata-03,bigdata-05,bigdata-04'conf = { "hbase.zookeeper.quorum": host, "hbase.mapreduce.inputtable": "student1"}k......

osenlin
50分钟前
0
0
数据库规范化

转载自 一个小时学会MySQL数据库 地址:http://www.cnblogs.com/best/p/6517755.html 截取其中 1.4 部分 用于自己学习使用 感谢作者:张果 1.4、数据库规范化 经过一系列的步骤,我们现在终于...

十万猛虎下画山
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部