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应用程序为例