在hadoop技术体系MapReduce中,Shuffle是比较重要的一个环节。对理解好Shuffle对往后的MapReduce调优将起到非常大的作用。

以下是我个人对MapReduce Shuffle的一些理解。

map task--数据格式化
程序会根据InputFormat将输入文件分割成splits,每个split会作为一个map task的输入,每个map task会有一个内存缓冲区,
输入数据经过map阶段处理后的中间结果会写入内存缓冲区,并且决定数据写入到哪个partitioner(分区),当写入的数据到达内存缓冲
区的的阀值(默认是0.8),会启动一个线程将内存中的数据溢写入磁盘,同时不影响map中间结果继续写入缓冲区。在溢写过程中,
会对key进行排序,如果中间结果比较大,会形成多个溢写文件,最后的缓冲区数据也会全部溢写入磁盘形成一个溢写
文件(最少有一个溢写文件),如果是多个溢写文件,则最后合并所有的溢写文件为一个文件。

reduce task--数据计算
当所有的map task完成后,每个map task会形成一个最终文件,并且该文件按区划分。reduce任务启动之前,一个map task完成后,
就会启动线程来拉取map结果数据到相应的reduce task,不断地合并数据,为reduce的数据输入做准备,当所有的map tesk完成后,
数据也拉取合并完毕后,reduce task 启动,最终将输出输出结果存入HDFS上。

转载于:https://www.cnblogs.com/enots/p/9540470.html

Map Reduce Shuffle相关推荐

  1. MapReduce核心map reduce shuffle (spill sort partition merge)详解

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java AP ...

  2. Hadoop Map/Reduce教程

    Hadoop Map/Reduce教程 目的     先决条件     概述     输入与输出     例子:WordCount v1.0         源代码         用法        ...

  3. 一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)

    Map/Reduce用户界面 本节为用户採用框架要面对的各个环节提供了具体的描写叙述,旨在与帮助用户对实现.配置和调优进行具体的设置.然而,开发时候还是要相应着API进行相关操作. 首先我们须要了解M ...

  4. 大数据Map Reduce 和 MPP数据库 的区别

    总结来说MR是一个编程模型,你可以用MR这个编程模型自己实现MPP所做的事. MPP则是一种SQL的计算引擎. "MR分而治之的策略" 和 "Massively Para ...

  5. HIVE User Guide 总结之四HIVE 的MAP/REDUCE、注意点

    7.HIVE 的MAP/REDUCE 7.1 jion 对于 JOIN 操作: INSERT OVERWRITE TABLE pv_users SELECT pv.pageid, u.age FROM ...

  6. [ZZ]Map/Reduce hadoop 细节

    转自:Venus神庙原文:http://www.cnblogs.com/duguguiyu/archive/2009/02/28/1400278.html 分布式计算(Map/Reduce) 分布式计 ...

  7. Hadoop简介(1):什么是Map/Reduce

    看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop整体有所了解了. Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Red ...

  8. 用通俗易懂的大白话讲解Map/Reduce原理

    Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰 ...

  9. python内置函数map reduce filter详解,面试必备知识

    面试时候经常会考到 map reduce filter 这三个内置函数的使用 map() 函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调 ...

最新文章

  1. 深入redis内部--实现双向链表
  2. jQuery 侧栏菜单点击body消失
  3. php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件
  4. 美团深度学习系统的工程实践
  5. php3.2.3 升级,thinkphp3.2.3 升级到3.2.4时出错问题
  6. js的navigator对象的使用(浏览器信息)
  7. 并发之线程封闭与ThreadLocal解析
  8. 异常:The supplied data appears to be in the Office 2007+ XML
  9. 《中文分词算法研究》
  10. 再聊一聊测试职业发展
  11. struct vsf_sysutil_statbuf
  12. 利用kali Linux破解WiFi密码
  13. 全票通过!数据集成平台 SeaTunnel 成功进入 Apache 孵化器!
  14. 傅里叶变换和正弦函数和欧拉公式
  15. python 操作excel笔记
  16. 基于STM32HAL库ADS1256调试笔记
  17. matlab应用最简差分格式,泊松方程有限差分格式的构造以及MATLAB实现.docx
  18. 计算机二级PS教学视频百度云,计算机二级ps考试题库完整教程文件.pdf
  19. 动视解析现代战争3 成功因团队强
  20. 百度地图 appkey_android,百度地图AppKey的申请

热门文章

  1. Nginx 挂了怎么办?怎么实现高可用?
  2. 只需4步,自己搞个 Spring Boot Starter !
  3. 两难!到底用Apache BeanUtils还是Spring BeanUtils?
  4. RESTful 架构基础
  5. 2021数据挖掘赛题方案来了!
  6. 有必要将所有机器学习算法都实现一遍吗?
  7. 一文详尽系列之逻辑回归
  8. LaTex公式编辑方法
  9. 报告:AI岗年薪下降8.9%,收入不及2018年
  10. 动真格!因为论文!138名研究生丧失学位申请资格,导师也被罚……