YARN Application执行流程

原文见  http://xiguada.org/yarn-application_run/ 

本节简单描述了一个Application在YARN上的执行流程,希望对初识YARN的同学提供一些帮助。

图1 Application执行流程

  1. 客户端提交作业到RM。
  2. RM在调度器中创建一个新的AppAttempt,维护该作业的信息。
  3. NM1向RM发送心跳,RM把ApplicationMaster分配到该NM1。
  4. RM通过RPC调用NM1的startcontainer方法。
  5. NM1启动AM。
  6. AM启动后向RM注册,并向RM请求资源。
  7. RM在调度器中维护AM所需的资源container1、container2等。
  8. NM2向RM发送心跳,请求资源。
  9. RM向NM2分配相应的资源container1。
  10. AM向RM发送心跳,RM告诉AM已经分配的container。
  11. AM通过RPC调用NM2的startcontainer方法。
  12. NM2启动container1。
  13. Container1启动后向AM汇报进度。
  14. Container1结束后NM通过心跳通知RM。
  15. AM向RM发送心跳,RM告诉AM相应的container1已经结束(也可以实现container直接告诉AM已经成功结束)。
  16. 当AM的所有Task已经结束,AM向RM汇报自己的结束状态。

转载请注明出处http://www.cnblogs.com/shenh062326/p/3598108.html

 

posted @ 2014-03-13 11:07  南国故人(Wall)  阅读(2291)  评论(3编辑  收藏  举报