当前位置:网站首页>YARN 应用提交过程

YARN 应用提交过程

2022-06-22 05:13:00 Shockang

前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系


YARN 应用提交过程

Application 在 Yarn 中的执行过程,整个执行过程可以总结为三步:

  1. 应用程序提交
  2. 启动应用的ApplicationMaster实例
  3. ApplicationMaster 实例管理应用程序的执行

在这里插入图片描述


详细版本

  1. 客户端程序向 ResourceManager 提交应用并请求一个 ApplicationMaster 实例;
  2. ResourceManager 找到一个可以运行一个 Container 的 NodeManager,并在这个Container 中启动 ApplicationMaster 实例;
  3. ApplicationMaster 向 ResourceManager 进行注册,注册之后客户端就可以查询 ResourceManager 获得自己 ApplicationMaster 的详细信息,以后就可以和自己的 ApplicationMaster 直接交互了(这个时候,客户端主动和 ApplicationMaster 交流,应用先向 ApplicationMaster 发送一个满足自己需求的资源请求);
  4. 在平常的操作过程中,ApplicationMaster 根据 resource-request 协议向 ResourceManager 发送 resource-request 请求;
  5. 当 Container 被成功分配后,ApplicationMaster 通过向 NodeManager 发送 container-launch-specification 信息来启动 Container,container-launch-specification 信息包含了能够让 Container 和 ApplicationMaster 交流所需要的资料;
  6. 应用程序的代码以 task 形式在启动的 Container 中运行,并把运行的进度、状态等信息通过 application-specific 协议发送给 ApplicationMaster;
  7. 在应用程序运行期间,提交应用的客户端主动和 ApplicationMaster 交流获得应用的运行状态、进度更新等信息,交流协议也是 application-specific 协议;
  8. 一旦应用程序执行完成并且所有相关工作也已经完成,ApplicationMaster向 ResourceManager 取消注册然后关闭,用到所有的 Container 也归还给系统。

精简版本

  1. 用户将应用程序提交到 ResourceManager 上;
  2. ResourceManager 为应用程序 ApplicationMaster 申请资源,并与某个 NodeManager 通信启动第一个 Container,以启动 ApplicationMaster;
  3. ApplicationMaster 与 ResourceManager 注册进行通信,为内部要执行的任务申请资源,一旦得到资源后,将于 NodeManager 通信,以启动对应的 Task;
  4. 所有任务运行完成后,ApplicationMaster 向 ResourceManager 注销,整个应用程序运行结束。
原网站

版权声明
本文为[Shockang]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Shockang/article/details/125384424