首页IT科技yarn组件架构(【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法)

yarn组件架构(【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法)

时间2025-09-19 12:17:59分类IT科技浏览6376
导读:本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程。通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式,出现问题时能更好的定位。...

本篇学习 Yarn Application 编写方法                 ,将带你更清楚的了解一个任务是如何提交到 Yarn                           ,在运行中的交互和任务停止的过程                 。通过了解整个任务的运行流程         ,帮你更好的理解 Yarn 运作方式        ,出现问题时能更好的定位                          。

一                 、简介

本篇将对 Yarn Application 编写流程进行介绍         。将一个新的应用程序运行到 Yarn 上                          ,主要编写两个组件 Client 和 ApplicationMaster                 ,组件的具体实现案例将在后两篇文章中介绍        。

(实际使用中        ,我们并不需要实现一个 Yarn Application                          ,直接将任务提交到 MapReduce                          、Spark         、Hive        、Flink 等框架上                 ,再由这些框架提交任务即可,这些框架也可以被视为一种特定的 Yarn Application                          。)

其中                          ,Client 主要用于提交应用程序和管理应用程序                          ,ApplicationMaster 负责实现应用程序的任务切分                          、调度                 、监控等功能                 。

一)Application 的提交和启动流程

二)各服务间涉及的 protocol

二        、组件实现流程

一)Client 实现

创建并启动 YarnClient; 通过 YarnClient 创建 Application; 完善 ApplicationSubmissionContext 所需内容: 设置 application name; 设置 ContainerLaunchContext;(包含 app master jar) 设置优先级                          、队列等 提交 Application        。

二)ApplicationMaster实现

创建并启动 AMRMClientAsync,用于与 ResourceManager 通信; 创建并启动 NMClientAsync                  ,用于与 NodeManager 通信; 向 ResourceManager 注册                          ,之后会向 ResourceManager 发送心跳; 向 ResourceManager 申请 Container                          。 在 Container 中运行 task

三)Hadoop 实现案例

Hadoop 自带的 hadoop-yarn-applications-distributedshell 是个很好的学习案例         ,可以参考其中的 Client.java 和 ApplicationMaster.java 两个类进行学习                 。DistributedShell 可以执行用户指定的 Shell 命令或脚本                 ,包含了编写一个 YARN Application 的完整内容。

三                 、小结

本篇带大家了解了 Yarn Application 提交和启动流程、组件间涉及的通信协议                          ,以及编写 Application 的基本流程                          。实际上         ,在 Yarn 上运行不同的框架应用 Hive                          、Spark                          、Flink 等就是主要实现 Client 和 Application Master 两个组件                          。理解了本文的相关知识        ,再去看其他应用提交过程就会清晰很多。

接下来的两篇讲带大家学习 Client 和 Application Master 具体编写方式                 。

参考文章:

深入解析yarn架构设计与技术实现-yarn 应用程序设计方法

Hadoop YARN原理 - 编写YARN Application

Hadoop DOC: Writing YARN Applications

github app-on-yarn-demo

《Hadoop 技术内幕 - 深入解析 Yarn 结构设计与实现原理》第四章

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
怎么验证win10系统完整(怎么确认win10是否已修复KB5001330导致的游戏问题?)