YARN
近期读了论文, Apache Hadoop YARN:Yet Another Resource Negotiator
收益匪浅,故写了一篇简单的总结,其中难免有错误,望指正。有消息
看到,会立即回复。
上图是yarn的的框架图,解释一下三个主要的守护进程
Resource Manager(RM), Node Manager(NM), Application Master(AM)
-
Resource Manager
central and global view of the cluster resource
Resource Mange通过心跳机制和集群种Node Manager通信,从而获得整个集群的资源状态
同时Resource Manger也处理Application Master的资源请求,分配相应的lease。
-
Node Manager
Node Manger主要的任务跟container有关,比如启动container,监控container的资源使用
情况,container执行的任务的状态等,将这些信息汇报给Resource Manger
-
Application Master
The AM periodically heartbeats to the RM to affirm its liveness and to update the record of its demand.
Application Master是跟Application一一对应的,主要的功能包括想RM请求资源,
监控container种task的执行情况
YARN下应用的执行步骤
-
MapReduce框架接受用户提交的作业,并为其分配一个新的应用ID,并将应用的定义
打包上传到HDFS上用户的应用缓存目录中,然后提交此应用给ResourceManager
-
ResourceManger获取执行ApplicationMaster所需的一个container,并在其上
启动ApplicationMaster.
-
ApplicationMaster计算应用所需的资源,并发送资源请求到ResourceManager
-
Resource Manager 会根据自己的资源分配策略满足应用的需求。响应时,Resource Manager 会把可用的资源绑定到一个 Token 上并返回给 Application Master
-
当 Application Master 获得 Token 后便会利用该 Token 向可用的 Node Manager 发出容器启动请求
-
NodeManager启动容器并运行任务。
-
ApplicationMaster监控container上任务执行情况。
-
ApplicationMaster反馈作业的执行状态信息和完成状态。