您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Yarn 工作流

你的项目在引入了包管理器的同时,也引入了一套新的围绕着依赖项开发的工作流程。Yarn尽力不改变你的工作流程,并使流程中的每一步都简单明了。

关于基本工作流你应该知道几个简单的事:

创建新项目

/更新/依赖

安装/重装你的依赖

引入版本控制系统(例如 git)

持续集成

 当给Yarn提交了应用程序后,Yarn的主要工作流程如下图:

Yarn流程主要分为以下8个步骤:

向Yarn提交应用程序,其中程序、相关、启动ApplicationMaster命令、ApplicationMaster程序等。

ResourceManager为该应用程序分配第Container,并且与Container所在的NodeManager通信,并且要求该NodeManager个Container中启动应用程序对应的ApplicationMaster。

ApplicationMaster首先会向ResourceManager,这样才可以直接通过ResourceManager查看到应用程序的运行状态,然后它为准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束,即重复后面4~7步骤。

ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

一旦ApplicationMaster申请到资源后,便会与申请到的Container所对应的NodeManager进行通信,并且要求它在该Container中启动任务。

任务启动。NodeManager为要启动的任务配置好运行环境,环境变量、、二进制程序等,并且将启动命令写在脚本里,通过该脚本运行任务。

各个任务通过RPC协议向其对应的ApplicationMaster汇报自己的运行状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以再任务运行失败时重启任务。

应用程序运行完毕后,其对应的ApplicationMaster会向ResourceManager通信,要求注销和自己。 

这个需要注意的是在整个工作流程当中,ResourceManager和NodeManager都是通过心跳保持联系的,NodeManager会通过心跳信息向ResourceManager汇报自己所在节点的资源使用情况。


联系我
置顶