java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3076|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66265

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

    发表于 2017-4-14 11:05:13 | 显示全部楼层 |阅读模式
    2.5 YARN 工作流程
    1 X$ o1 ]# u! m1 m/ q# [运行在YARN上的应用程序主要分为两类: 短应用程序和长应用程序, 其中, 短应用程序是指一定时间内( 可能是秒级、 分
    " X3 J6 }3 k/ ~( ~) _; y, s钟级或小时级, 尽管天级别或者更长时间的也存在, 但非常少) 可运行完成并正常退出的应用程序, 比如
    MapReduce作业( 将在
    ; h7 r3 n0 n3 `2 |
    8章介绍) 、 Tez DAG作业( 将在第9章介绍) 等, 长应用程序是指不出意外, 永不终止运行的应用程序, 通常是一些服务, 比
    . N4 i* }" a  D
    StormService( 主要包括NimbusSupervisor两类服务) , HBase Service( 包括HmasterRegionServer两 类服务) [21] 等, 而它们
    . |5 Z  z" j5 I7 H) W1 H. N本身作为一个框架提供了编程接口供用户使用。 尽管这两类应用程序作用不同, 一类直接运行数据处理程序, 一类用于部署服务' |8 D6 q5 e' v$ R
    ( 服务之上再运行数据处理程序) , 但运行在
    YARN上的流程是相同的。) Z8 R- L* ?# X' @$ u+ l% B" d6 K
    当用户向
    YARN中提交一个应用程序后, YARN将分两个阶段运行该应用程序: 第一个阶段是启动ApplicationMaster; 第二个5 Z$ Q$ W9 S. A( L( u
    阶段是由
    ApplicationMaster创建应用程序, 为它申请资源, 并监控它的整个运行过程, 直到运行完成。 如图2-11所示, YARN的工
    - e1 j, `  ~6 n作流程分为以下几个步骤:- ~( @- m0 ]) q& `. F4 i
    步骤
    1 用户向YARN中提交应用程序, 其中包括ApplicationMaster程序、 启动ApplicationMaster的命令、 用户程序等。
    - g  g9 @* o: x5 S; b) V) H步骤
    2 ResourceManager为该应用程序分配第一个Container, 并与对应的Node-Manager通信, 要求它在这个Container中启动应
    % o5 G- l% y1 G" y. u: M用程序的
    ApplicationMaster
    3 I3 i- G; ^0 B步骤
    3 ApplicationMaster首先向ResourceManager注册, 这样用户可以直接通过ResourceManage查看应用程序的运行状态, 然, r7 t" [$ j1 z$ ~7 a
    后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤
    4~7
    / e4 h9 H8 V, G7 d) R步骤
    4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。; e5 a/ ^1 x- ^
    步骤
    5 一旦ApplicationMaster申请到资源后, 便与对应的NodeManager通信, 要求它启动任务。2 n. B( G+ m  H' C
    步骤
    6 NodeManager为任务设置好运行环境( 包括环境变量、 JAR包、 二进制程序等) 后, 将任务启动命令写到一个脚本
    ) u+ m4 x" Y3 l. l" r1 |2 y) V7 r中, 并通过运行该脚本启动任务。
    ' t2 K0 N  ?2 r步骤
    7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度, 以让ApplicationMaster随时掌握各个任务的运: a$ c2 x, p, y" i
    行状态, 从而可以在任务失败时重新启动任务。
    ( u" v6 j! ]3 ?3 C7 O! z' }: a在应用程序运行过程中, 用户可随时通过
    RPCApplicationMaster查询应用程序的当前运行状态。1 ]# J  o0 n3 m0 |2 L- S: x
    步骤
    8 应用程序运行完成后, ApplicationMasterResourceManager注销并关闭自己。
    5 c3 P4 e2 D$ T5 g2 o1 F0 i; F2-11 Apache YARN的工作流程6 U; W) x% U) j: m/ m" h
    [21] 关于"HBase On YARN"可阅读http://hortonworks.com/blog/hoya-hbase-on-yarn-application-architecture/
    - w* U2 @: R) Z1 K2.6 多角度理  
    ' v& W- C0 f* R
    : y8 O' o+ t9 p% }" p
    * m5 J# U5 O& |2 {  @
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-9-8 09:37 , Processed in 0.109725 second(s), 35 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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