|
2.5 YARN 工作流程. i$ S v. `% y4 a, T3 ^
运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分
" a5 ]: U+ E0 q: w8 L' X1 i0 n- z钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如MapReduce作业( 将在8 }. ?9 u! k: q1 C" W( k
第8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比
/ [1 [' \2 x' o9 L6 z; F* x( B如StormService( 主要包括Nimbus和Supervisor两类服务) , HBase Service( 包括Hmaster和RegionServer两 类服务) [21] 等, 而它们
* S6 q+ ?: O. |* u本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务( r' Z$ E2 A% k% @: I( t5 {
( 服务之上再运行数据处理程序) , 但运行在YARN上的流程是相同的。: Z7 ~& N/ U8 L- W4 q
当用户向YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个
) b! i. F5 |% b8 @4 O' D阶段是由ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工1 l9 f, S c/ I, @
作流程分为以下几个步骤:' @$ k# J9 z) G* h
步骤1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。0 a" K, k& d8 `) f- J3 ]3 A% [
步骤2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应, i. U$ e8 {3 |9 g
用程序的ApplicationMaster。
1 {. u4 f( f7 n( Q4 r步骤3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然. P9 @$ N2 x& E/ Y
后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤4~7。
3 }9 y/ I8 _' ?% w步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。+ [" [5 F( m5 K6 u0 O/ `8 U
步骤5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。5 z3 S& n; d9 m6 G( I+ W4 y
步骤6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本 B! ?! [2 A( ]' _4 W; J" Q) n
中, 并通过运行该脚本启动任务。 d4 j; G! o+ `% W9 x: \ D) Z) p
步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运
+ g: x6 r+ U$ M, }3 k5 w行状态, 从而可以在任务失败时重新启动任务。
# I6 X5 W5 ], C; ^5 s在应用程序运行过程中, 用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。# x4 ?% p- A/ H$ L0 `
步骤8 应用程序运行完成后, ApplicationMaster向ResourceManager注销并关闭自己。
1 A' B& A1 j3 ^+ E. I4 q/ Z图2-11 Apache YARN的工作流程
5 d) g5 _2 Q- Z" a0 K[21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/。
; S5 T' N% j0 _- X1 j3 h- F2.6 多角度理
I' v# a- J& G9 q, p4 D4 `; O/ \' T8 [6 D
6 W% ]1 \5 I9 W7 B5 x0 Q% K
|
|