|
2.5 YARN 工作流程6 J% r0 b7 M1 U/ a! c
运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分
5 S0 ~: d/ W1 c# F! Y- R0 z钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如MapReduce作业( 将在6 W6 |3 E5 w8 I
第8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比9 |0 P" M Y8 @& v7 c' |, ~
如StormService( 主要包括Nimbus和Supervisor两类服务) , HBase Service( 包括Hmaster和RegionServer两 类服务) [21] 等, 而它们
2 z; m' D8 g+ X, q本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务8 [5 r: N# ~# c+ Y& O. @- k" y9 I
( 服务之上再运行数据处理程序) , 但运行在YARN上的流程是相同的。7 O2 B7 ~8 y4 L6 R* O/ R
当用户向YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个
" U* g8 S( T/ c1 f+ J) d& _阶段是由ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工
# W- k8 q+ X! {2 W3 ^: k6 R. ?) K作流程分为以下几个步骤:, {0 x" c% U* U! ]
步骤1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。
5 `- l# d$ ]* w' R& v) T9 s+ ^步骤2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应
' g$ C# Y7 n' _! M4 X W用程序的ApplicationMaster。) d( v/ O! V. x H$ v
步骤3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然" i% Q8 E4 n9 {) Z( P
后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤4~7。+ y$ n# o$ B, G5 R$ i1 K. x
步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
1 E7 Y! a. V) U. @步骤5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。8 |4 S7 X' z4 |7 L' Q% p. b
步骤6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本/ \: h& ^. b) O! B: I6 v I
中, 并通过运行该脚本启动任务。
5 |$ b+ ?+ {; n! Q' S. X- R步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运# b& [' f) i; i+ v
行状态, 从而可以在任务失败时重新启动任务。0 p; f5 H8 i3 g) w% n8 ^; r
在应用程序运行过程中, 用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。/ ^$ ?, x" C) q# Y2 \
步骤8 应用程序运行完成后, ApplicationMaster向ResourceManager注销并关闭自己。
' ]( L' x) a+ S; Y& l+ A图2-11 Apache YARN的工作流程
; p/ p& Y0 Z- e. `! h2 n[21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/。) R# h5 j% V' R5 Y) K/ v
2.6 多角度理
6 k% H! V3 v/ K
8 g! a5 t, f1 L& ]$ X" `" s6 s. v1 I/ G
|
|