[学习笔记]

结果分析:
shuffle的英文是洗牌,混洗的意思,洗牌就是越乱越好的意思。当在集群的情况下是这样的,假如有三个map节点和三个reduce节点,一号reduce节点的数据会来自于三个map节点,而不是就来自于一号map节点。所以说它们的数据会混合,路线会交叉, 3叉3。想象一下,像不像洗牌? 马克-to-win @ 马克java社区:shuffle在MapReduce中是指map输出后到reduce接收前,按下面的官方shuffle图:具体可以分为map端和reduce端两个部分。在最开始,假设我们就提交一个大文件,MapReduce会对要处理的大文件数据进行分片(split)操作放到多台机器的集群里,(想象一个搬走大山的大活给一个师的人马,是不是要把人,部署一圈,展开,一人干一块儿,现在是一样的道理。现在你要摆弄一个1.5T的文件, 需要先把它切开, 分配到不同机器)为每一个分片分配一个MapTask任务,接下来会对每一个分片中的每一行数据进行处理,得到键值对(key,value),其中key为偏移量,value为一行的内容。准备给咱们的自己的map方法。执行完咱自己的map方法,便进入shuffle阶段。马克-to-win @ 马克java社区:为提高效率,mapreduce会把我们的写出的结果先存储到map节点的“环形内存缓冲区”(不深入探讨),当写入的数据量达到预先设置的阙值后(默认80%)便会启动溢出(spill)线程将缓冲区中的那部分数据溢出写(spill)到磁盘的临时文件中,可能会产生很多,并在写入前根据key进行排序(sort)和合并(combine,本章不讨论)。

文章转载自原文: https://blog.csdn.net/qq_44594249/article/details/95864731

MapReduce的shuffle过程详解的更多相关文章

  1. MapReduce:Shuffle过程详解

    1.Map任务处理 1.1 读取HDFS中的文件.每一行解析成一个<k,v>.每一个键值对调用一次map函数.                <0,hello you>   & ...

  2. Hadoop Mapreduce的shuffle过程详解

    1.map task读取数据时默认调用TextInputFormat的成员RecoreReader,RecoreReader调用自己的read()方法,进行逐行读取,返回一个key.value; 2. ...

  3. hadoop: Shuffle过程详解 (转载)

    原文地址:http://langyu.iteye.com/blog/992916 另一篇博文:http://www.cnblogs.com/gwgyk/p/3997849.html Shuffle过程 ...

  4. Mapreduce中maptask过程详解

    一.Maptask并行度与决定机制 1.一个job任务的map阶段的并行度默认是由该任务的大小决定的: 2.一个split切分分配一个maprask来并行处理: 3.默认情况下,split切分的大小等 ...

  5. Shuffle过程详解

  6. Hadoop Mapreduce分区、分组、二次排序过程详解[转]

    原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动   (1)最简单的过程:  map - reduce   (2) ...

  7. MapReduce过程详解(基于hadoop2.x架构)

    本文基于hadoop2.x架构详细描述了mapreduce的执行过程,包括partition,combiner,shuffle等组件以及yarn平台与mapreduce编程模型的关系. mapredu ...

  8. Hadoop MapReduce执行过程详解(带hadoop例子)

    https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...

  9. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

随机推荐

  1. IP数据报首部checksum的计算

    IP数据报首部checksum的计算 2009年02月22日 23:23:00 zhangyang0402 阅读数:10897   一.首先区别下面两个概念:(1)one's complement:正 ...

  2. 【转载】Hadoop集群各部分常用端口号

    hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问.而随着hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如 ...

  3. getLocation需要在app.json中声明permission字段,解决办法

    具体开发方法如下: 在 app.json 里面增加 permission 属性配置(小游戏需在game.json中配置): "permission": { "scope. ...

  4. 爬虫前提——正则表达式语法以及在Python中的使用

    正则表达式是用来处理字符串的强大工具,他并不是某种编程云. 正则表达式拥有独立的承受力引擎,不管什么编程语言,正则表达式的语法都是一样的. 正则表达式的匹配过程 1.一次拿出表达式和文本中的字符比较. ...

  5. 走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven

    小李的Build之路(上) 转自: 刘欣 码农翻身 2016-07-10 摘要:手工Build的烦恼要不是为了和女朋友留在一个城市,小李肯定去北上广奋斗去了.现在他只能留在这个2.5线城市,进入这家软 ...

  6. git 和conding.net 超详细超简单安装

    在做一下操作前,希望你能知道 1.什么是git? 可以参考https://blog.csdn.net/a909301740/article/details/81636662 如果还想多了解一下还可以参 ...

  7. Linux中强大的top命令

    top命令算是最直观.好用的查看服务器负载的命令了.它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大. 在终端中输入top,回车后会显示如下内容:   top - 21: ...

  8. Java 签名(SHA1WithRSA、SHA256WithRSA、SHA256withECDSA)

    RSA1.RSA256 签名 public static String MakeSign(String Data) { try { byte[] data = Data.getBytes(); byt ...

  9. Thrift: Scalable Cross-Language Services Implementation

    http://thrift.apache.org/static/files/thrift-20070401.pdf

  10. FlowLayout实现

    package com.loaderman.customviewdemo; import android.content.Context; import android.util.AttributeS ...