java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2799|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66095

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

    发表于 2017-4-14 11:06:08 | 显示全部楼层 |阅读模式
    2.6 多角度理解YARN/ m. p' A7 D1 O2 e
    下面我从并行编程、 资源管理、 云计算等三个角度帮助读者理解YARN
    & L3 Y& c1 P* v3 v/ U" c7 {
    2.6.1 并行编程8 e% A, \5 U4 ?' k0 N
    在单机程序设计中, 为了快速处理一个大的数据集, 通常采用多线程并行编程, 如图2-12所示, 大体流程如下: 先由操作系
    3 `; s* V! P& @5 \$ U统启动一个主线程, 由它负责数据切分、 任务分配、 子线程启动和销毁等工作, 而各个子线程只负责计算自己的数据, 当所有子
    $ X" n: M7 e' m线程处理完数据后, 主线程再退出。 类比理解,
    YARN上的应用程序运行过程与之非常相近, 只不过它是集群上的分布式并行编% H) t/ \1 }, N5 M% N, h2 I* p
    程。 可将
    YARN看做一个云操作系统, 它负责为应用程序启动ApplicationMaster( 相当于主线程) , 然后再由ApplicationMaster负责5 ^5 j" \3 Z  V( x3 d: z6 |" W
    数据切分、 任务分配、 启动和监控等工作, 而由
    ApplicationMaster启动的各个Task( 相当于子线程) 仅负责自己的计算任务。 当所
    9 h+ W- H5 d+ h' u" {% o; A有任务计算完成后,
    ApplicationMaster认为应用程序运行完成, 然后退出。
    . i5 c, K/ N; Z9 [
    2.6.2 资源管理系统
    4 G1 r2 d- r, p! i9 V
    资源管理系统的主要功能是对集群中各类资源进行抽象, 并根据各种应用程序或者服务的要求, 按照一定的调度策略, 将资
    ; B# J$ v: J: H( D9 W源分配给它们使用, 同时需采用一定的资源隔离机制防止应用程序或者服务之间因资源抢占而相互干扰。
    YARN正是一个资源管
    ! D2 _3 T& j- {6 P# J6 v理系统, 它的出现弱化了计算框架之争, 引入
    YARN这一层后, 各种计算框架可各自发挥自己的优势, 并由YARN进行统一管
    0 D! \" |8 k. Z理, 进而运行在一个大集群上。 截至本书出版时, 各种开源系统都在开发
    YARN版本, 包括MapReduceSparkStormHBase
    5 y4 A& W! G) M* y) h, `
    等。, h( g$ D1 S3 r. [( O- p
    2-12 从并行编程角度理解YARN
    / W! S" G+ O% {( U1 F; `1 w
    2.6.3 云计算
    , z. j: D& E% Y% ?$ {  a9 `! C, M1 A
    普遍认为, 云计算包括以下几个层次的服务: IaaSPaaSSaaS。 这里所谓的层次, 是分层体系架构意义上的层次/ O/ @- v" M! l$ P+ j: L
    IaaSPaaSSaaS分别实现在基础设施层、 软件开放运行平台层、 应用软件层。5 }* T5 F) j, w2 S1 j9 @* m
    IaaS(Infrastructure-as-a-Service): 基础设施即服务。 消费者通过Internet可以从完善的计算机基础设施获得服务。 Iaas通过网络向7 S2 s2 i, o6 n
    用户提供计算机( 物理机和虚拟机) 、 存储空间、 网络连接、 负载均衡和防火墙等基本计算资源; 用户在此基础上部署和运行各

    9 k6 |1 D) h( R, e1 c种软件, 包括操作系统和应用程序等。
    9 ?% t( y! x$ `! k0 V; u
    PaaS(Platform-as-a-Service): 平台即服务。 PaaS是将软件研发的平台作为一种服务, 以SaaS的模式提交给用户。 平台通常包括2 B' W( e5 j% L" P) H& s+ o, }
    操作系统、 编程语言的运行环境、 数据库和
    Web 服务器等, 用户可以在平台上部署和运行自己的应用。 通常而言, 用户不能管
    0 J' W' p8 c7 e理和控制底层的基础设施, 只能控制自己部署的应用。: w+ t, B; r- X+ @7 F3 K
    SaaS(Software-as-a-Service): 软件即服务。 它是一种通过Internet提供软件的模式, 用户无需购买软件, 而是向提供商租用基+ f* L2 i& C/ C! K  V! U1 |
    Web的软件, 来管理企业经营活动。 云提供商在云端安装和运行应用软件, 云用户通过云客户端( 比如Web 浏览器) 使用软3 b* c( X: {! A! R! L2 I' L' B0 A
    件。
      
    ) p- k- d: o3 ?+ P4 i- m
    5 ^  Z' f5 _4 u# A+ ]% ~- J: ]5 ]% N# \
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-26 08:54 , Processed in 0.306672 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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