2017.5.9 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排序

时间: 2024-10-30 05:24:22

2017.5.9 MapReduce内部逻辑的相关文章

Dubbo之旅--内部逻辑

在没有开始用代码来解释之前,用图最能够表达一些关系,关于Dubbo的内部逻辑调用关系,借用官方的图示来说明一下,如下图 通过上图中的一个个方框我们称之为节点,总共有5个节点,这五个节点可以看成五个角色,每个角色都有一定的功能.每个角色的意思如下: Provider: 暴露服务的服务提供方. 在实际项目中一般称这个角色为提供者.它主要是向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销. Consumer: 调用远程服务的服务消费方. 既然有提供者,对应的这就是消费者.服务

解密所有APP运行过程中的内部逻辑(转)

转贴地址:http://www.freebuf.com/tools/54562.html 0×01前言 这年头,apk 全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了.静态分析越来越不靠谱了,apktool.ApkIDE.jd GUI.dex2jar等已经无法满足大家的需求了.那么问题就来了,小伙伴们真正需要的是什么?好的,大家一起呐喊出你内心的欲望吧,我们的目标是-- "debug apk step by step". 0×02那些不靠谱的工具 先来说说那些不靠谱的

初步掌握MapReduce的架构及原理

目录 1.MapReduce定义 2.MapReduce来源 3.MapReduce特点 4.MapReduce实例 5.MapReduce编程模型 6.MapReduce 内部逻辑 7.MapReduce架构 8.MapReduce框架的容错性 9.MapReduce资源组织方式 1.MapReduce 定义 Hadoop 中的 MapReduce是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错式并行处理TB级别的数据集 2.MapR

深入理解MapReduce的架构及原理

1. MapReduce 定义 Hadoop 中的 MapReduce是一个使用简单的软件框架.基于它写出来的应用程序能够执行在由上千个商用机器组成的大型集群上,并以一种可靠容错式并行处理TB级别的数据集 2. MapReduce 特点 MapReduce 为什么如此受欢迎?尤其如今互联网+时代,互联网+公司都在使用 MapReduce.MapReduce 之所以如此受欢迎.它主要有下面几个特点. - MapReduce 易于编程.它简单的实现一些接口,就能够完毕一个分布式程序.这个分布式程序能

MapReduce 实例

 为了分析 MapReduce 的编程模型,这里我们以 WordCount 为实例.就像 Java.C++等编程语言的入门程序 hello word 一样,WordCount 是 MapReduce 最简单的入门程序.下面我们就来逐步分析. 1.场景:假如有大量的文件,里面存储的都是单词. 类似应用场景:WordCount 虽然很简单,但它是很多重要应用的模型. 1) 搜索引擎中,统计最流行的 K 个搜索词. 2) 统计搜索词频率,帮助优化搜索词提示. 2.任务:我们该如何统计每个单词出现的次数

hadoop入门笔记MapReduce Shuffle简介(五)

1. MapReduce 定义 Hadoop 中的 MapReduce是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错式并行处理TB级别的数据集 2. MapReduce 特点 MapReduce 为什么如此受欢迎?尤其现在互联网+时代,互联网+公司都在使用 MapReduce.MapReduce 之所以如此受欢迎,它主要有以下几个特点. - MapReduce 易于编程.它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可

Hadoop(四)——编程核心MapReduce(上)

上篇讲述了Hadoop的核心内容之一HDFS,是Hadoop分布式的平台基础,而这讲的MapReduce则是充分利用Hdfs分布式,提高运行效率的算法模型 ,Map(映射)和Reduce(归约)两个主要阶段都以<key,value>键值对作为输入和输出,我们需要做的就是对这些<key,value>做我们想要的处理.看似简单实则麻烦,因为这里太灵活多变. 一,好,首先来看下边两个图,看下mapreduce在Hadoop中的执行流程,以及mapreduce内部的执行流程: 以分析气象数

大数据图数据库之MapReduce用于图计算

/* 版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/                 CopyMiddle: 张俊林 节选自<大数据日知录:架构与算法>十四章,书籍目录在此 1.使用Mapreduce进行图计算 使用MapReduce框架来针对大规模图数据进行计算的研究工作相对较少,这主要归结于两方面原因:一方面,将传统的图计算映射为MapReduce任务相对其他类型的很多任务而言不太直观:另一方面,从某种角度讲,使用该分布计算框架解决图计算任务也并非最适宜的解决方案.

MapReduce 实现数据join操作

前段时间有一个业务需求,要在外网商品(TOPB2C)信息中加入 联营自营 识别的字段.但存在的一个问题是,商品信息 和 自营联营标示数据是 两份数据:商品信息较大,是存放在hbase中.他们之前唯一的关联是url.所以考虑用url做key将两者做join,将 联营自营标识 信息加入的商品信息中,最终生成我需要的数据: 一,首先展示一下两份数据的demo example 1. 自营联营标识数据(下面开始就叫做unionseller.txt) http://cn.abc.www/product436