这是我参与「第四届青训营 」笔记创作活动的的第13天
1、运行在[YARN]上的MapReduce应用程序
2、运行在YARN上的Storm应用程序
3、YARN应用程序基本构成
①客户端 :
主要作用是提供一系列访问接口供用户与YARN交互,包括提交Application、查询Application运行状态,修改Application属性(比如优先级)等。 ②ApplicationMaster: 向ResourceManager申请资源(以Container形式表示); 与NodeManager通信以启动各个Container(Task); 监控各个任务运行状态,并在失败时为其重新申请资源。
4、以MapReduce应用程序为例
MapReduce客户端: 将MapReduce作业提交到YARN上; 查询MapReduce作业运行状态; 管理MapReduce作业,比如杀死MapReduce作业,修改其优先级等。
ApplicationMaster(MRAppMaster): 根据描述,将作业分解成Map Task和Reduce Task; 向ResourceManager为Map/Reduce Task申请资源; 与NodeManager通信以启动Task; 监控各个任务运行状态,并在失败时为其重新申请资源。
5、MapReduce On YARN和MapReduce 程序区别
MapReduce On YARN(由专业人员开发): 为MapReduce作业运行在YARN上提供跟一个通用的运行时环境; 需要与YARN的各个服务交互,完成较为复杂的功能; 由客户端和ApplicationMaster两部分组成。 MapReduce程序(由普通用户开发): 用户使用编程API(包括新旧两种)编写的应用程序; 由Mapper、Reducer、Combiner等组件构成; 程序提交到YARN上后,将由已经写好的ApplicationMaster服务对其进行分解和调度。
6、YARN应用程序开发流程-以MapReduce应用程序为例
7、YARN的任务调度
-
什么是调度?
- 如果我们向YARN中提交运行了多个程序
- YARN中整个集群的资源是固定
- 谁先执行,谁后执行,大家怎么分配资源
调度类型:三种
FIFO:先进先出
YARN中构建一个队列【管道:一头进,一头出】
- 所有提交的任务都
按照提交的时间放到队列中 - 先放入的程序,享有整个YARN中的所有资源,哪怕你用不了,那也是你的
- 直到先放进去的程序运行完成,才会运行第二个程序
特点
单队列,先进先出
运行的程序,享有所有资源
程序不能并行也不能并发
并行:多个程序在不同的队列中同时运行
并发:在一个队列中多个程序同时运行 这种方式不会选用的
Capacity:容量调度机制
YARN中构建多个队列,每个队列是FIFO
将整个YARN的资源分配到不同的队列中
YARN:24core 24GB
队列1:12core 12GB
队列2:12Core 12GB
运行程序时,可以指定将程序提交到哪个队列中运行