Map Reduce Shuffle
在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相关推荐
- MapReduce核心map reduce shuffle (spill sort partition merge)详解
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java AP ...
- Hadoop Map/Reduce教程
Hadoop Map/Reduce教程 目的 先决条件 概述 输入与输出 例子:WordCount v1.0 源代码 用法 ...
- 一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)
Map/Reduce用户界面 本节为用户採用框架要面对的各个环节提供了具体的描写叙述,旨在与帮助用户对实现.配置和调优进行具体的设置.然而,开发时候还是要相应着API进行相关操作. 首先我们须要了解M ...
- 大数据Map Reduce 和 MPP数据库 的区别
总结来说MR是一个编程模型,你可以用MR这个编程模型自己实现MPP所做的事. MPP则是一种SQL的计算引擎. "MR分而治之的策略" 和 "Massively Para ...
- 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 ...
- [ZZ]Map/Reduce hadoop 细节
转自:Venus神庙原文:http://www.cnblogs.com/duguguiyu/archive/2009/02/28/1400278.html 分布式计算(Map/Reduce) 分布式计 ...
- Hadoop简介(1):什么是Map/Reduce
看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop整体有所了解了. Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Red ...
- 用通俗易懂的大白话讲解Map/Reduce原理
Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰 ...
- python内置函数map reduce filter详解,面试必备知识
面试时候经常会考到 map reduce filter 这三个内置函数的使用 map() 函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调 ...
最新文章
- 深入redis内部--实现双向链表
- jQuery 侧栏菜单点击body消失
- php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件
- 美团深度学习系统的工程实践
- php3.2.3 升级,thinkphp3.2.3 升级到3.2.4时出错问题
- js的navigator对象的使用(浏览器信息)
- 并发之线程封闭与ThreadLocal解析
- 异常:The supplied data appears to be in the Office 2007+ XML
- 《中文分词算法研究》
- 再聊一聊测试职业发展
- struct vsf_sysutil_statbuf
- 利用kali Linux破解WiFi密码
- 全票通过!数据集成平台 SeaTunnel 成功进入 Apache 孵化器!
- 傅里叶变换和正弦函数和欧拉公式
- python 操作excel笔记
- 基于STM32HAL库ADS1256调试笔记
- matlab应用最简差分格式,泊松方程有限差分格式的构造以及MATLAB实现.docx
- 计算机二级PS教学视频百度云,计算机二级ps考试题库完整教程文件.pdf
- 动视解析现代战争3 成功因团队强
- 百度地图 appkey_android,百度地图AppKey的申请