java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3083|回复: 0

《深入解析YARN架构设计与实现原理》第3章 YARN基础库【3.1】

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

    [LV.Master]出神入化

    2093

    主题

    3751

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66775

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

    发表于 2017-4-14 11:10:24 | 显示全部楼层 |阅读模式
    第二部分 YARN 核心设计篇" Y1 |' d$ h$ v
    YARN是一个通用资源管理系统, 可为上层应用提供统一的资源管理和调度, 它的引入为集群在利用率、 资源统一管理和数
    1 y) s& B* D* K3 Z' A, m- m据共享等方面带来了巨大好处。 本书第二部分将从底层基础库、 应用程序编程接口、 运行时环境等方面深入剖析
    YARN的内部原
    6 \: ^  J' ], J2 E% }7 _理和实现, 读者通过对这部分的学习应可编写出运行在
    YARN上的应用程序, 且能根据实际项目需求完成对YARN的二次开发。' c  A* v0 Z, ^( Y) f: R) O
    3YARN基础库2 I9 `; x* ]7 y2 E5 @/ {( ]
    MRv1的实现相比, YARN的实现要复杂得多。 YARN借用了MRv1的一些底层基础库( 如RPC库) , 因为引入了很多新的4 v. E( ~2 P  p+ K+ a$ N
    软件设计方式, 它的基础库更多, 例如直接使用开源序列化框架
    Protocol BuffersApache Avro, 及自定义的服务库、 事件库和状
    + B6 J% k9 X7 ]: E! @. o! _7 w; ^态机等。
    5 M. M6 A) [9 l本章介绍的
    YARN基础库是理解后面几章内容的基础, 重要性不言而喻。 其中有些基础库是开源的, 并且被广泛使用, 读者% L6 X1 [+ |  L+ I, }$ E' o/ ?
    可根据自己的情况选择性阅读。

    , @$ f$ A$ P- m( x4 y3.1 概述
    ; c0 m8 s+ |5 h2 _5 f% \% r$ ~
    YARN基础库是其他一切模块的基础, 它的设计直接决定了YARN的稳定性和扩展性, 概括起来, YARN的基础库主要有以! A* y$ f7 m: t
    下几个。+ T0 ?. W' @+ U6 N( ~/ A9 W# b* u
    ❑Protocol BuffersProtocol BuffersGoogle开源的序列化库, 具有平台无关、 高性能、 兼容性好等优点。 YARNProtocol4 A: M3 ~  a8 r! ]
    Buffers
    用到了RPC通信中, 默认情况下, YARN RPC中所有参数采用Protocol Buffers进行序列化/反序列化, 相比于MRv1中基于自
    # [- k5 `6 V$ J  q; c& U定义
    Writable框架的方式, YARN在向后兼容性、 扩展性等方面提高了很多。( u  e; c( q! `9 N. p, Y1 M* v/ L
    ❑Apache AvroAvroHadoop生态系统中的RPC框架, 具有平台无关、 支持动态模式( 无需编译) 等优点, Avro的最初设
      E2 C- {  N1 K& r4 g% x( ~* G计动机是解决
    YARN RPC兼容性和扩展性差等问题, 目前, YARN采用Avro记录MapReduce应用程序日志( 用于故障后应用程序+ I, N# c+ M9 z  P, X4 y0 J, [% Q0 f
    恢复) , 今后可能代替
    Protocol Buffers作为RPC辅助库( 至少会作为一个可选方案) 。
      ]1 u! A. X' M% ]% d
    ❑RPC库: YARN仍采用了MRv1中的RPC库, 但其中采用的默认序列化方法被替换成了Protocol Buffers- I- _) A' k" F0 ]9 D; S/ W
    ❑服务库和事件库: YARN将所有的对象服务化, 以便统一管理( 比创建、 销毁等) , 而服务之间则采用事件机制进行通* I' R3 {& P3 k+ G/ G
    信, 不再使用类似
    MRv1中基于函数调用的方式。2 H* h  L: Y6 h8 x1 l( V* w
    ❑状态机库: 状态机是一种表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 在YARN中, 很多对象都. e4 {9 Y# o8 }: L) a) Y
    是由若干状态组成的, 且当有事件发生时, 状态之间会发生转移, 比如作业、 任务、
    Container等, 而YARN正是采用有限状态机
    $ V( W3 b" u9 e% H# z8 [) j7 `描述一些对象的状态以及状态之间的转移。 引入状态机模型后, 相比
    MRv1YARN的代码结构更加清晰易懂了。
    ) o; T7 z  l* {" {1 {8 \! f$ w理解以上这几个库是阅读后面几章的基础, 本章将详细介绍这几个库。
      5 x5 I0 j0 I0 t
    ' G% n# _/ A  T

    ! v: i- J5 y% d
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-3-30 05:46 , Processed in 0.077703 second(s), 28 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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