Hadoop MapReduce与Hadoop YARN

目录

一、Hadoop Mapreduce

1、“分而治之”的思想

2、mapreduce执行流程

3、阶段组成

4、MapReduce数据类型

5、mapreduce执行的整体流程图

6、map阶段的执行过程

7、reduce的执行过程

8、mapreduce中的shuffle机制

9、关于shuffle

二、Hadoop YARN(Yet Another Resource Negotiator-另一种资源协调者)

1、YARN功能与架构组件

2、YARN的官方架构图

3、程序提交YARN交互流程

4、YARN调度策略、


一、Hadoop Mapreduce

1、“分而治之”的思想

"""
简单来说,就是把一个复杂的问题,按照一定的规则分解为等价的小规模的若干部分,然后逐个解决,把各部分的结果整合,组成问题的最终结果。
对于mapreduce来说,代表着任务的进行分成两个阶段:Map阶段和Reduce阶段
​
1、Map:负责拆分 拆分的前提是这些小任务可以并行计算,彼此之间互相隔离,没有依赖关系
​
2、Reduce:负责合并
"""
# mapreduce处理的数据类型是k,v键值对
"""
1、mapreduce优点:易于编程、扩展性好、容错率高、适合海量数据的离线处理(GB,TB,PB)
​
2、mapreduce缺点:实时计算性差、不能进行流式计算
​
流式计算特点是数据是源源不断得计算,并且数据是动态的;而MapReduce作为一个离线计算框架,主要是针对静态数据集得,数据是不能动态变化得。
​
"""

2、mapreduce执行流程

一个完整的MapReduce程序在分布式运行时有三类

"""
1、MRAppMaster:负责整个MR程序的过程调度及状态协调
​
2、MapTask:负责map阶段的整个数据处理流程
​
3、ReduceTask:负责reduce阶段的整个数据处理流程
"""

3、阶段组成

  • 一个MapReduce编程模型中只能包含一个Map阶段和一个Reduce阶段,或者只有Map阶段;

  • 不能有诸如多个map阶段、多个reduce阶段的情景出现;

  • 如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行。

4、MapReduce数据类型

  • 注意:整个MapReduce程序中,数据都是以kv键值对的形式流转的;

  • 在实际编程解决各种业务问题中,需要考虑每个阶段的输入输出kv分别是什么;

  • MapReduce内置了很多默认属性,比如排序、分组等,都和数据的k有关,所以说kv的类型数据确定及其重要的

5、mapreduce执行的整体流程图

 

6、map阶段的执行过程

1、第一阶段:

把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。

默认Split size = Block size(128M),每一个切片由一个MapTask处理。(getSplits)

2、第二阶段:

对切片中的数据按照一定的规则读取解析返回<key,value>对。

默认是按行读取数据。key是每一行的起始位置偏移量,value是本行的文本内容。(TextInputFormat)

3、第三阶段:

调用Mapper类中的map方法处理数据。

每读取解析出来的一个<key,value> ,调用一次map方法。

4、第四阶段:

按照一定的规则对Map输出的键值对进行分区partition。默认不分区,因为只有一个reducetask。

分区的数量就是reducetask运行的数量。

5、第五阶段:

Map输出数据写入内存缓冲区,达

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值