Hadoop2.0 | YARN工作流程
YARN工作流程
YARN通信协议
RPC
协议是连接各个组件的“大动脉”
YARN
采用的是拉式(pull-based
)通信模型
任何两个需相互通信的组件之间仅有一个RPC
协议
对于任何一个RPC
协议,通信双方有一端是Client
,另一端为Server
,且Client
总是主动连接Server
的
ApplicationClientProtocol
:JobClient
通过该RPC
协议提交应用程序、查询应用程序状态等
ResourceManagerAdministrationProtocol
:Admin
通过该RPC
协议更新系统配置文件,比如节点黑白名单、用户队列权限等
ApplicationMasterProtocol
:AM
通过该RPC
协议向RM
注册和撤销自己,并为各个任务申请资源
ContainerManagementProtocol
:AM
通过该RPC
要求NM
启动或者停止Container
,获取各个Container
的使用状态等信息
ResourceTracker
:NM
通过该RPC
协议向RM
注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container
运行情况
YARN工作流程
运行YARN
的应用程序主要有两类:短应用程序和长应用程序
短应用程序指在一定时间内可以运行完成并正常退出的应用程序,比如MapReduce
作业
长应用程序是指不出意外,永不终止运行的应用程序,通常是一些服务,比如Storm Service
,HBase Service
等
当用户向YARN
中提交一个应用程序后,YARN
将分两个阶段运行该应用程序:
第一阶段:启动ApplicationMaster
第二阶段:由ApplicationMaster
创建应用程序
多角度理解YARN
为了快速处理一个大的数据集,通常采用多线程并行编程
多角度理解YARN资源管理系统主要功能:
对集群中各类资源进行抽象
按照一定的策略,将资源分配给应用程序或服务
采用一定的隔离机制防止应用程序或者服务之间因资源抢占而相互干扰
引入YARN
这一层后,各种计算框架可各自发挥自己的优势,并由YARN
进行统一管理。
目前支持的应用系统有:MapReduce
、Spark
、Storm
、HBase
等