|
2.5 YARN 工作流程
3 j o- y$ M h4 h% |运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分
( a; T' J& N6 _- P钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如MapReduce作业( 将在1 d' e" N6 T: {& w( c% m
第8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比* f; r# V( o9 D# @7 X; N
如StormService( 主要包括Nimbus和Supervisor两类服务) , HBase Service( 包括Hmaster和RegionServer两 类服务) [21] 等, 而它们
9 x; B: Q! b1 E8 i1 K本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务
- h7 p: z* q+ a/ s, d v( 服务之上再运行数据处理程序) , 但运行在YARN上的流程是相同的。
( ~) Y% S% B! L: I7 P, T" f7 i当用户向YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个
9 s7 }: t4 x8 x) N3 }. H阶段是由ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工
/ \4 O6 Y: o6 m2 @/ W" t/ Z- C& q作流程分为以下几个步骤:
) Z9 U* D1 z5 }/ U8 @6 Y' m0 ]( p步骤1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。0 q: d* U* f. ]1 |" O) C: B
步骤2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应6 ]6 \2 |; f- O8 c: Y
用程序的ApplicationMaster。
8 c% _1 a* m/ O$ B1 \3 N' K. l步骤3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然+ s1 w h) I2 M L$ ~* P, X
后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤4~7。/ _& k. c) a7 I7 K" I
步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。# G) Y" F5 W; D" V
步骤5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。
/ i3 G; P' B6 s0 V0 r步骤6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本
9 I6 J5 L* @3 R9 [( J6 _中, 并通过运行该脚本启动任务。
7 C4 @+ N3 f: O9 r- F( p1 ?步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运
- [- \4 _2 `! R6 N; \+ D! p# A行状态, 从而可以在任务失败时重新启动任务。# b4 O& v/ C L/ ~8 ?" \( y. _
在应用程序运行过程中, 用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。
8 ]5 t( I/ V) O3 E0 }! ^步骤8 应用程序运行完成后, ApplicationMaster向ResourceManager注销并关闭自己。
k& t& Q5 k- F9 z6 O图2-11 Apache YARN的工作流程
! ~) g, q. U |1 Q. a[21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/。
, @% Q4 c2 D. o' D0 Y' p2.6 多角度理 - {: d$ n3 _0 r$ d/ t/ w) d) O/ s+ w4 ~
3 M; N* B. O5 K0 o9 {- W/ u: E( h& I; s. m) j+ o2 Y2 c
|
|