2017.5.10 MapReduce内部逻辑
MapReduce内部逻辑

Split:HDFS 中的数据以 Split 方式作为 MapReduce 的输入
Block 是 HDFS 术语,Split 是 MapReduce 术语 通常1个 Split 对应1个 block,也可能对应多个block,具体是由 InputFormat 和压缩格式决定的
默认情况下,使用的是TextInputFormat,这时1个Split对应1个block,上图4个Split对应4个Block
Mapper解析出的数据输出到本地磁盘上
Map阶段由一批同时运行的Map Task 组成,每个 Map Task由3个部分组成:
InputFormat:对输入数据格式进行解析,默认为TextInputFormat,key代表每行偏移量,value代表每行数据内容。
Mapper:输入数据处理 Partitioner:数据分组, Mapper 的输出key会经过
Partitioner 分组选择不同的Reduce。默认Partitioner 会对 map 输出的key进行hash取模,比如有6个Reduce Task,它就是模(mod)6,如果key的hash值为0,就选择第0个 Reduce Task。这样不同的map 对相同key,它的 hash 值取模是一样的
Reduce 阶段由一批同时运行的 Reduce Task 组成,每个 Reduce Task由4个部分组成:
Shuffle: Reduce Task 远程拷贝每个 map 处理的结果,从每个 map 中读取一部分结果,每个 Reduce Task 拷贝哪些数据,是由 Partitioner 决定的
Sort:读取完数据后,会按照key排序,相同的key被分到一组
Reducer:数据处理,以WordCount为例,对相同的key计词频数 OutputFormat:数据输出格式, Reducer 的结果将按照
OutputFormat 格式输出,默认为 TextOutputFormat ,以WordCount为例,这里的key为单词,value为词频数

缓冲区默认为100M,由io.sort.mb属性控制
缓冲区快要溢出时(默认为缓冲区大小的80%,由io.sort.spill.percent属性控制),写磁盘,最后合并,reduce端也一样,reduce端拿到的map端数据是按key排序
2017.5.10 MapReduce内部逻辑的更多相关文章
- 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
[前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...
- 大数据开发实战:MapReduce内部原理实践
下面结合具体的例子详述MapReduce的工作原理和过程. 以统计一个大文件中各个单词的出现次数为例来讲述,假设本文用到输入文件有以下两个: 文件1: big data offline data on ...
- MyEclipse 2017 CI 10 发布(附下载)
挑战全年最低价!MyEclipse线上狂欢仅剩最后3天!立即抢购>> 2017 CI 10主要是一个错误修复版本,这个版本为Angular和TypeScript工具提供了重要的修复,并为I ...
- 欢迎来怼-Alpha周(2017年10月19)贡献分配规则和分配结果
.从alpha周(2017年10月19日开始的2周)开始,提高贡献分比重. 贡献分 : 团队分 = 1 : 5 教师会在核算每位同学总分时按比例乘以系数. 每位同学带入团队贡献分10分,如果团队一共7 ...
- 2017年10月31日结束Outlook 2007与Office 365的连接
2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...
- 批处理引擎MapReduce内部原理
批处理引擎MapReduce内部原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MapReduce作业生命周期 MapReduce作业作为一种分布式应用程序,可直接运行在H ...
- 江西省移动物联网发展战略新闻发布会举行-2017年10月江西IDC排行榜与发展报告
编者按:当人们在做技术创新时,我们在做“外包产业“:当人们在做制造产业,我们在做”服务产业“:江人们在做AI智能时,我们在做”物联网“崛起,即使有一个落差,但红色热土从不缺少成长激情. 本期摘自上月初 ...
- 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告
报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...
- c# Equal函数 and 运算符'==' (原发布 csdn 2017年10月15日 20:39:26)
1.==.!=.<.>.<= 和>= 运算符为比较运算符(comparison operator).C#语言规范5.0中文版中比较运算符的描述如下: 2.通用类型系统 3.值类 ...
随机推荐
- 逆袭之旅DAY16.东软实训.Oracle.索引
2018-07-12 14:44:27 四.索引1.创建索引手动创建:create index 索引名 on 表名(列名,[列名,...])create table employee(pno numb ...
- 改变Cube的Shader下的Alpha值,实现Cube若隐若现的效果。
private float rotaSpeed = 5f; private float timer = 1; private bool flag = true; private float delay ...
- Eclipse集成Tomcat插件(特别简单)
. 只需要一个jar包 复制到eclipse/plugins文件夹下,重启Eclipse即可看到如下三只小猫 1.修改Tomcat (1)Tomcat version:版本 (2)Tomcat Hom ...
- 下载python中package的简便方法
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx
- Cracking The Coding Interview 3.6
// Write a program to sort a stack in ascending order. You should not make any assumptions about how ...
- Linux系统管理常用命令用法总结(2)
1.free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等. 语法:free [-bkmotV][-s <间隔秒数>] 参数说明: - ...
- SQL-5查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
输出描述: 题目描述 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工CREATE TABLE `dept_emp` (`emp_ ...
- 二、求水仙花数,打印出100-999之间所有的"水仙花数"
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方 public c ...
- Grid Layout 注释
.wrapper { display: grid;/*定义一个块级的网格容器*/ grid-template-columns: repeat(3, 1fr); /*表示平均分为3列*/ grid ...
- java中String的认识
String不是Java的基本数据类型.String类是final类,故不可继承. String 和 StringBuffer之间的区别非常大,Java平台提供了两个类,两者都是包含多个字符的的字符数 ...