page contents

大数据:Yarn应用程序提交流程

Hadoop向用户提供了三种能力:分布式文件系统HDFS、分布式计算模式MapReduce和资源调度框架YARN。由于Hadoop的影响力较大,在大数据圈里一直把“应用 on YARN”作为一个门槛条件,由YARN统一对资源管理和调度,实现应用和租户的资源隔离。

attachments-2023-03-9iXV8DAr6401a7503db6b.jpeg

Hadoop向用户提供了三种能力:分布式文件系统HDFS、分布式计算模式MapReduce和资源调度框架YARN。由于Hadoop的影响力较大,在大数据圈里一直把“应用 on YARN”作为一个门槛条件,由YARN统一对资源管理和调度,实现应用和租户的资源隔离。很多人把YARN当成是Hadoop圈里面的K8S。接下向大家介绍应用程序如何部署到YARN上面去。

attachments-2023-03-lzghivr46401a7f42105d.png

应用为了能够跑在YARN上,需要编写客户端程序和ApplicationMaster程序。

客户端应用程序,即上图中的Client:

1.向Resource Manager发消息,获取应用ID;

2.构造Application Master运行时所需要的上下文,包括应用ID、启动的命令、依赖的JAR文件、需要的资源等;

3.向Resource Master提交Application Master。Resouce Master会选择一个Node Manager启动Application Master;

4.向Resource Master发消息,查询Application Master的运行状态或者杀掉应用程序;

Client可以通过与Resource Manager交互获取Application Master的状态,但是为了减轻Resource Manager的负担,一般Client直接与Application Master通信,查询其状态。

ApplicationMaster程序:

1.向Resouce Manager注册自己;

2.向Resource Manager申请资源,需要注意的时,申请资源的接口也是心跳的接口,所以Application Master在运行期间需要周期性地调用申请资源的接口;

3.Application Master收到分配的资源信息后,向Node Manager发送启动容器的请求,Node Manager启动容器;

4.Application Master周期性地向Node Manager发送消息,查询容器运行状态,当发现容易运行失败时,可以尝试重启容器;

5.当任务运行完成后,Application Master向Node Manager发送停止容器的请求,释放资源;

6.Application Master向Resource Manager发送应用完成的消息;

YARN应用整体的运行过程大体如上。可以看出,一个应用要跑在YARN上,需要做很多事情。目前开源社区为了方便应用上YARN,推出了YARN Service服务。这个服务帮用户做了很多事情,包括上面提到的客户端程序和Application Master,还有应用状态的监控,故障后重新拉起等。YARN Service对外提供命令行工具和REST API。用户编写自己的应用程序描述文件,通过YARN Service提供的接口提交这份文件。YARN Service会按照描述文件分配指定的资源、启动指定数据的应用实例。应用程序上YARN将会越来越容易。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

关注下方微信公众号:Java圈子,获取价值999元全套Java入门到进阶的学习资料以及教程,还有Java技术交流群一起交流学习哦。

attachments-2023-03-0HOyoFRQ6401a6e5cfa2f.jpg

  • 发表于 2022-02-28 09:51
  • 阅读 ( 557 )
  • 分类:Java开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章