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 以参数序列中的每一个元素调 ...
最新文章
- C++11 类型后置语法
- 【TypeScript】通过node-cmd使用代码,执行cmd命令行
- 易语言取c盘文件夹中的文件被占用,win7系统怎么快速找出文件被什么进程占用|win7解除文件占用的方法...
- content属性的4种用途
- Node 之NPM介绍
- (14)FPGA触发器与寄存器区别
- 二十四节气插画素材,每一张都带你如感
- spring boot demo( 获取一个RESTful web service)
- Shell 脚本进程并发进程数控制
- spine怎么取消版本升级_设置 - Spine用户指南
- 华硕笔记本进bios按哪个键 华硕手提电脑怎么进bios设置
- python中空格怎么打_191012 python3关于空格打印、赋值、+=符号的小坑
- 云计算—重塑IT产业格局
- cesium.js官网教程之中文版本~~~~第一篇
- HTTP协议以及返回状态码
- kali linux怎么安装无线网卡驱动,Kali Linux 安装BCM43142网卡驱动
- 教育培训行业现状分析
- 三大世界级难题,等你来解答
- 如何确定企业是否需要推行CMMI?
- 【每日新闻】2017年亚马逊研发投入排世界第一,超过华为、BAT 总和 | 数人云宣布与UMCloud合并...