|
2.5 YARN 工作流程
% J$ f. {, B1 ]% n+ R运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分
. M3 f) { P" W3 c# b4 l2 r钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如MapReduce作业( 将在
/ y w# n3 a: D R& H) ?3 [# w第8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比' b+ K9 k% Z7 A4 G' h+ M
如StormService( 主要包括Nimbus和Supervisor两类服务) , HBase Service( 包括Hmaster和RegionServer两 类服务) [21] 等, 而它们! N1 { L1 b r) H/ m7 z7 \& F
本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务
( C9 c: r) x, m( V8 \- {+ t( 服务之上再运行数据处理程序) , 但运行在YARN上的流程是相同的。
# n7 ^* r; {8 Y2 |+ @/ w当用户向YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个
8 i2 [2 P4 q z& Y6 i# i阶段是由ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工
/ g1 Q: C2 L3 g' V! b& f作流程分为以下几个步骤:) x+ V9 ~; i( i/ k
步骤1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。6 s) |) _$ b9 m" r9 p
步骤2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应, m0 |( k5 g. X U! e3 K- ~3 \- R% w
用程序的ApplicationMaster。: J6 \. z2 [& S
步骤3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然
9 g6 S$ g2 u$ f/ N: ?后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤4~7。
. F3 F0 I# D" n1 G7 e5 q4 I步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
; g% J5 w' k/ I* S6 x) L2 {步骤5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。0 h4 ]8 t5 V. M2 V
步骤6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本
5 U. |0 a4 Y8 {& y5 b/ H中, 并通过运行该脚本启动任务。7 g4 @8 ~) r- C5 @% Y
步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运
# s, M" ~6 q- P8 \7 M5 F3 }行状态, 从而可以在任务失败时重新启动任务。
( F' [9 v$ o3 l, Z8 j1 Y4 Q在应用程序运行过程中, 用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。" @1 N' B0 n& f' C
步骤8 应用程序运行完成后, ApplicationMaster向ResourceManager注销并关闭自己。+ z$ k2 C7 H- L0 l
图2-11 Apache YARN的工作流程! ^- h" {# t- ]* G- H4 Z# z! S
[21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/。
: e; R5 @7 g5 t0 y2 e" ?! M5 G2.6 多角度理
b/ ~7 Z& D3 `* |6 I B
$ P2 l4 o' ^; j5 k1 t- `
7 d7 K$ I# W- e2 N |
|