java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3191|回复: 0

《深入解析YARN架构设计与实现原理》第2章 YARN设计理念与基本架构【2.5】

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-4-14 11:05:13 | 显示全部楼层 |阅读模式
    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( 主要包括NimbusSupervisor两类服务) , HBase Service( 包括HmasterRegionServer两 类服务) [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在应用程序运行过程中, 用户可随时通过
    RPCApplicationMaster查询应用程序的当前运行状态。# x4 ?% p- A/ H$ L0 `
    步骤
    8 应用程序运行完成后, ApplicationMasterResourceManager注销并关闭自己。
    1 A' B& A1 j3 ^+ E. I4 q/ Z2-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
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-11-21 17:39 , Processed in 0.619276 second(s), 34 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表