java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2781|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

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

    发表于 2017-4-13 21:21:00 | 显示全部楼层 |阅读模式
    第2章 YARN设计理念与基本架构) G1 ^/ h5 O1 d2 A4 K" ^" O
    在第1章, 我们介绍了Hadoop学习环境的搭建方法, 这是学习Hadoop需要进行的最基本的准备工作。 在这一章中, 我们将从+ ?, z2 Q' N$ v- q. b: E
    设计理念和基本架构方面对
    Hadoop YARN进行介绍, 这也属于准备工作的一部分。 通过本章的介绍将会为下面几章深入剖析# O& y3 R& H9 D8 E& _
    YARN内部实现奠定基础。4 i4 n$ C: p/ }2 L: p
    由于
    MRv1在扩展性、 可靠性、 资源利用率和多框架等方面存在明显不足, Apache开始尝试对MapReduce进行升级改造, 于
    $ q7 d% f2 j: g. x( x是诞生了更加先进的下一代
    MapReduce计算框架MRv2。 由于MRv2将资源管理模块构建成了一个独立的通用系统YARN, 这直接
    % m# K  v, {: u- h" q: n' @使得
    MRv2的核心从计算框架MapReduce转移为资源管理系统YARN。 在本章中, 我们将从背景、 设计思想和基本架构等方面对
    * e7 T( y0 t3 p6 ~" w3 ~! ]3 ^: H
    YARN框架进行介绍。
    0 E0 k1 S0 J" Y* v2 b, i8 W2.1 YARN 产生背景4 u4 f" ?' y+ e
    2.1.1 MRv1 的局限性
    2 B) X7 A2 `, x* o
    YARN是在MRv1基础上演化而来的, 它克服了MRv1中的各种局限性。 在正式介绍YARN之前, 我们先要了解MRv1的一些局3 r+ }' Q5 q6 E
    限性, 这可概括为以下几个方面:6 z) ?: o+ Y: X. c3 s5 M" K& T
    ❑扩展性差% a# O% ^# e, Q" P7 ~1 @
    。 在MRv1中, JobTracker同时兼备了资源管理和作业控制两个功能, 这成为系统的一个最大瓶颈, 严重制约了Hadoop集群扩展8 l+ h- r- [- j# {* O
    性。
    # h, B" H$ V+ m2 d" t* ?  F
    ❑可靠性差
    9 ~/ Q' i  _. l! B( r8 V: P
    MRv1采用了master/slave结构, 其中, master存在单点故障问题, 一旦它出现故障将导致整个集群不可用。; u; c: g. R" k6 }+ ]( c
    ❑资源利用率低
    . d6 M  V6 x* H- t3 }7 A
    MRv1采用了基于槽位的资源分配模型, 槽位是一种粗粒度的资源划分单位, 通常一个任务不会用完槽位对应的资源, 且其他8 x7 Y; V# N6 ?4 d
    任务也无法使用这些空闲资源。 此外,
    Hadoop将槽位分为Map SlotReduce Slot两种, 且不允许它们之间共享, 常常会导致一种# q5 v, r  A5 m% e) V
    槽位资源紧张而另外一种闲置( 比如一个作业刚刚提交时, 只会运行
    Map Task, 此时Reduce Slot闲置) 。
    0 {* E' t! G6 E
    ❑无法支持多种计算框架' X6 ^" F6 ]5 d; ]  y
    。 随着互联网高速发展, MapReduce这种基于磁盘的离线计算框架已经不能满足应用要求, 从而出现了一些新的计算框架, 包括
    + z4 w  ~" H( P4 l* R  G内存计算框架、 流式计算框架和迭代式计算框架等, 而
    MRv1不能支持多种计算框架并存。
    $ i2 b5 F6 F1 i) b# [为了克服以上几个缺点,
    Apache开始尝试对Hadoop进行升级改造, 进而诞生了更加先进的下一代MapReduce计算框架" |  B$ Q5 e0 e4 n# n3 u) X! J  }
    MRv2。 正是由于MRv2将资源管理功能抽象成了一个独立的通用系统YARN, 直接导致下一代MapReduce的核心从单一的计算框" C, t) C8 H* ?
    MapReduce转移为通用的资源管理系统YARN。 为了让读者更进一步理解以YARN为核心的软件栈, 我们将之与以MapReduce
    . d* H7 J. q7 x' X) ]核心的软件栈进行对比, 如图
    2-1所示, 在以MapReduce为核心的软件栈中, 资源管理系统YARN是可插拔替换的, 比如选择* ~! C  R* ^  ?9 g, {4 E
    Mesos替换YARN, 一旦MapReduce接口改变, 所有的资源管理系统的实现均需要跟着改变; 但以YARN为核心的软件栈则不同,5 ~! M9 y6 o- C2 l% \& X
    所有框架都需要实现
    YARN定义的对外接口以运行在YARN之上, 这意味着Hadoop 2.0可以打造一个以YARN为核心的生态系统。
    ; N- {! i/ l3 y2 q8 A% c# v
    2-1 MapReduce为核心和以YARN为核心的软件栈对比1 b# L  O% d; _0 K3 e
    2.1.2 轻量级弹性计算平台* i+ q  B5 W- K5 m2 P
    随着互联网的高速发展, 基于数据密集型应用的计算框架不断出现, 从支持离线处理的MapReduce, 到支持在线处理的
    8 N% i4 a9 ]5 u; @3 i7 }# F
    Storm, 从迭代式计算框架Spark到流式处理框架S4, 各种框架诞生于不同的公司或者实验室, 它们各有所长, 各自解决了某一类. ^/ v8 Q( `# N. u% u8 R
    应用问题。 而在大部分互联网公司中, 这几种框架可能同时被采用。 比如在搜索引擎公司中, 一种可能的技术方案如下: 网页建* r9 j( K) o! i  x
    立索引采用
    MapReduce框架, 自然语言处理/数据挖掘采用Spark( 如网页PageRank计算、 聚类分类算法等) , 对性能要求很高的
    " {& M* w6 X5 ?& S: g$ V" q数据挖掘算法用MPI等。 考虑到资源利用率、 运维成本、 数据共享等因素, 公司一般希望将所有这些框架都部署到一个公共的集, I0 x. {8 ?) W8 j! X8 i2 v% N
    群中, 让它们共享集群的资源, 并对资源进行统一使用, 同时采用某种资源隔离方案( 如轻量级
    cgroups) 对各个任务进行隔离,
    ; o# O( P5 _: S: E5 X这样便诞生了轻量级弹性计算平台, 如图
    2-2所示。 YARN便是弹性计算平台的典型代表。
    + l# }8 k' K1 {' c" s8 `从上面分析可知,
    YARN实际上是一个弹性计算平台, 它的目标已经不再局限于支持MapReduce一种计算框架, 而是朝着对0 }: Q( q, a+ H0 N1 }
    多种框架进行统一管理的方向发展。
    5 N7 j2 Z# C1 e8 S7 C. R7 L相比于
    一种计算框架一个集群的模式, 共享集群的模式存在多种好处:  g8 j7 s" X4 b$ F2 a$ c; o) |
    ❑资源利用率高0 K. T8 O  |5 E: b1 @* _
    。 如图2-3所示, 如果每个框架一个集群, 则往往由于应用程序数量和资源需求的不均衡性, 使得在某段时间内, 有些计算框架
    5 J" L) |6 q, r7 H4 F" n) r的集群资源紧张, 而另外一些集群资源空闲。 共享集群模式则通过多种框架共享资源, 使得集群中的资源得到更加充分的利用。
    : ]7 B' }( S0 e/ p# j5 m- W& G/ a' h
    ❑运维成本低3 Q; k2 p9 K* {0 e0 x9 H" W8 j5 M
    。 如果采用一个框架一个集群的模式, 则可能需要多个管理员管理这些集群, 进而增加运维成本, 而共享模式通常需要少数管
    3 _! _. F* n4 N0 [% \* P7 I理员即可完成多个框架的统一管理。
    9 [! z0 }. }- I1 ~) x
    2-2 YARN为核心的弹性计算平台的基本架构. ]* }! G/ y* {! A1 y
    2-3 共享集群模式使得资源利用率提高
      E$ S' C, T3 t* E0 w5 x7 y
    ❑数据共享
    " `. W1 L0 p: i! I8 O  x- |
    。 随着数据量的暴增, 跨集群间的数据移动不仅需花费更长的时间, 且硬件成本也会大大增加, 而共享集群模式可让多种框架) f6 [0 u1 e  p. ?; m- d% l* m
    共享数据和硬件资源, 将大大减小数据移动带来的成本。
      5 F4 y) d1 r$ T6 |% {! q

    ! f4 J7 J+ J4 r
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-21 21:02 , Processed in 0.100109 second(s), 28 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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