YARN(Hadoop)学习笔记(6)
2015-01-01 17:10
330 查看
YARN应用程序分析
我们先回顾一下YARN的三个核心组件,分别是ResourceManager,NodeManager和ApplicationMaster。
首先RM是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。RM负责作业与资源的调度。接收 JobSubmitter 提交的作业,按照作业的上下文 (Context) 信息,以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 ApplicationMaster
NodeManager 功能比较专一,就是负责 Container 状态的维护,与AM通讯,并向 RM保持心跳。
AM 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 RM以外的机器上。
应用程序是用户编写的处理数据的程序的统称,它从YARN中申请资源以完成自己的计算任务。YARN自身对应用程序的类型没有任何限制,既可以处理短任务作业,例如MapReduce作业,又能处理长作业,如Strom Service、Hbase Service等。
YARN作为一个资源管理系统,负责Cluster资源的管理和调度。如果想要将一个新的应用程序运行在YARN之上,通常需要编写2个组件Client和ApplicationMaster。这两个组件的编写需要考虑RPC调用和任务容错等细节。YARN将大量的应用程序抽象成了一种通用的框架。比如MapReduce就是已经实现的一种应用框架。
作为YARN上执行的应用程序的两个重要组件Client和AM,他们在应用程序执行过程中的作用是完全不同的。Client负责向RM提交AM。而AM负责向RM注册,申请应用程序执行的资源,并与节点管理器NM进行通信已启动各自的Container。另外AM还负责监控各个任务的运行状态,并在失败时为期申请资源。
AM执行完成后会通过RPC的方式告知RM应用程序开始注册,示例代码如下所示:
RegisterApplicationMasterResponseresponse = amRMClient.registerApplicationMaster(appMasterHostname,appMasterRpcPort,appMasterTrackingUrl);
AM负责向RM申请资源。RM相应的会返回一个集群可以使用的资源,包括内存CPU等
maxMem=response.getMaximumResourceCapability().getMemory();
maxVCores=response.getMaximumResourceCapability().getVirtualCores();
我们先回顾一下YARN的三个核心组件,分别是ResourceManager,NodeManager和ApplicationMaster。
首先RM是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。RM负责作业与资源的调度。接收 JobSubmitter 提交的作业,按照作业的上下文 (Context) 信息,以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 ApplicationMaster
NodeManager 功能比较专一,就是负责 Container 状态的维护,与AM通讯,并向 RM保持心跳。
AM 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 RM以外的机器上。
应用程序是用户编写的处理数据的程序的统称,它从YARN中申请资源以完成自己的计算任务。YARN自身对应用程序的类型没有任何限制,既可以处理短任务作业,例如MapReduce作业,又能处理长作业,如Strom Service、Hbase Service等。
YARN作为一个资源管理系统,负责Cluster资源的管理和调度。如果想要将一个新的应用程序运行在YARN之上,通常需要编写2个组件Client和ApplicationMaster。这两个组件的编写需要考虑RPC调用和任务容错等细节。YARN将大量的应用程序抽象成了一种通用的框架。比如MapReduce就是已经实现的一种应用框架。
作为YARN上执行的应用程序的两个重要组件Client和AM,他们在应用程序执行过程中的作用是完全不同的。Client负责向RM提交AM。而AM负责向RM注册,申请应用程序执行的资源,并与节点管理器NM进行通信已启动各自的Container。另外AM还负责监控各个任务的运行状态,并在失败时为期申请资源。
AM执行完成后会通过RPC的方式告知RM应用程序开始注册,示例代码如下所示:
RegisterApplicationMasterResponseresponse = amRMClient.registerApplicationMaster(appMasterHostname,appMasterRpcPort,appMasterTrackingUrl);
AM负责向RM申请资源。RM相应的会返回一个集群可以使用的资源,包括内存CPU等
maxMem=response.getMaximumResourceCapability().getMemory();
maxVCores=response.getMaximumResourceCapability().getVirtualCores();
相关文章推荐
- [Big Data]菜鸟的Hadoop (Before YARN) 学习笔记 (一) WordCount
- hadoop学习笔记 YARN
- hadoop学习笔记:yarn框架资源相关配置
- YARN(Hadoop)学习笔记(4)
- Hadoop学习笔记十二 YARN基础知识
- Hadoop学习笔记 5 - hdfs和yarn高可用性的搭建与配置
- Hadoop学习笔记 --- YARN工作原理
- hadoop学习笔记之深入了解YARN
- Hadoop学习笔记 --- YARN架构学习
- YARN(Hadoop)学习笔记(5)
- Hadoop学习笔记(老版本,YARN之前),MapReduce任务Namenode DataNode Jobtracker Tasktracker之间的关系
- hadoop yarn 学习笔记(一)
- YARN(Hadoop)学习笔记(3)
- Hadoop学习笔记(四)YARN
- Hadoop学习笔记之YARN
- 大数据学习笔记之二十九 Hadoop的第二代MapReduce YARN
- hadoop新MapReduce框架yarn学习笔记
- 第120讲:Hadoop的MapReduce和Yarn的配置实战详解学习笔记
- Hadoop YARN学习笔记
- Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署