|
2.5 YARN 工作流程 g' C% B; O$ o
运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分9 t9 _8 Y$ @$ o- l0 w
钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如MapReduce作业( 将在" N0 L/ _) ]; K6 G, n* I6 z4 g# L* w
第8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比
* K0 E _5 C/ S; e如StormService( 主要包括Nimbus和Supervisor两类服务) , HBase Service( 包括Hmaster和RegionServer两 类服务) [21] 等, 而它们# y7 g# y6 o+ V
本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务
) I8 ^7 m9 |8 l2 s9 v( 服务之上再运行数据处理程序) , 但运行在YARN上的流程是相同的。" n+ Z" n# H- H; [% [5 s
当用户向YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个
6 N1 A- N- Z; i0 B4 R, F, W, K% `阶段是由ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工1 t- C- U* V$ w) ?4 Y
作流程分为以下几个步骤:
6 ^5 f5 I; S9 D1 _( N% @步骤1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。. t y0 C3 T# y0 v
步骤2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应 N. j7 W( j" i6 G6 S" H6 W+ ~
用程序的ApplicationMaster。! d1 R6 P1 k7 ]8 }# k( @5 b
步骤3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然; z* g0 {2 s- G- @( ]' D
后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤4~7。
9 W4 o$ g# Y: s/ [- ~" B3 O1 p步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
# n1 h7 M8 q$ d* Z- R步骤5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。5 L) H2 @+ W6 d9 e' T! X; w V
步骤6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本
* o0 v+ F% w! z# m中, 并通过运行该脚本启动任务。. o, d! F& B5 d, }- n
步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运
9 P4 G/ B: c4 R& ?8 a行状态, 从而可以在任务失败时重新启动任务。
- Q; s5 m& j9 D. I0 k1 l在应用程序运行过程中, 用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。+ A9 ^+ o$ ?' N7 G1 ?% O' S/ C- w
步骤8 应用程序运行完成后, ApplicationMaster向ResourceManager注销并关闭自己。0 c! @* l3 K' ~% l" |" n
图2-11 Apache YARN的工作流程5 E2 J/ U* z' ^4 y! |: M9 O# D
[21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/。
8 s u4 z ?) y" y2.6 多角度理 8 i6 q I3 H6 V3 D
$ g1 M/ Y1 y! ^' w# G" m. C
3 y- a+ G5 A# ?4 V ?- j |
|