zoukankan      html  css  js  c++  java
  • YARN 笔记

    YARN课程地址:https://edu.hellobi.com/course/93/play/lesson/1471

    1. YARN的产生背景

    MRv1

    • 编程模型:Map阶段和Reduce阶段
    • 数据处理引擎:MapTask和ReduceTask
    • 运行时环境:JobTracker(资源管理和作业控制)和TaskTracker(接受JT命令并具体执行)

    MRv2

    • 编程模型、数据处理引擎,与MRv1是一样的 
      唯一不同的是运行时环境。
    • MRv2是运行于YARN之上的MapReduce计算框架。
    • YARN(资源管理与调度)和ApplicationMaster(作业控制)。

    YARN 
    支持多中计算框架的资源管理器。

    MRv1局限性 
    1、 可扩展性差,同时具备资源管理和作业控制两个功能,集群中的瓶颈。 
    2、 可靠性差,主从架构(Master/Slave架构),其中的主节点存在单点故障,一旦主节点出现问题,将导致集群不可用。 
    3、 资源利用率低,Slot资源分配模式,粗粒度的资源划分单位,通常任务不会用完一个槽的对应资源,且其他任务也无法使用这些空闲资源。 
    4、 无法支持多种计算框架

    YARN轻量级计算平台优点 
    1、 资源利用率高, 
    2、 运维成为降低 
    3、 数据共享

    2. YARN的设计思想

    MRv1和MRv2的框架对比 
    MRv1和MRv2的编程模型对比 
    MRv1和MRv2的运行时环境对比

    3. YARN的基本架构

    1、YARN的基本组成结构

    • ResourceManager:全局的资源管理器,负责整个集群的资源管理、分配与调度。
    • Scheduler(调度器),纯调度器,默认下是Fair Scheduler
    • NodeManager:对每一个slave上的资源和任务做管理 
      • 1) 定时的向RM汇报HearBeat(资源的使用情况和Container的运行状态)
      • 2) 接受来自AM的启动/停止的请求
    • Container:资源分配单位(MRv1中Slot),动态分配。
    • ApplicationMaster:每个APP都会包含一个AM,AM的功能包括: 
      • 1) 向RM申请资源(用Container资源抽象)
      • 2) 将任务做进一步的分配
      • 3) 与NM通信启动/停止任务
      • 4) 跟踪每一个Task的运行状态(包括Failed后的操作)

    2、YARN的通信协议 
    1)Client与RM通信的协议,ApplicationClientProtocol,作业的提交、应用程序的状态等。 
    2)AM与RM通信协议,ApplicationMasterProtocol,向RM注册AM,申请资源。 
    3)AM与NM通信协议,ContainerManagementProtoca,启动/停止Container。 
    4)RM与NM通信协议,ResourceTracker,汇报slave节点的资源信息包括Container的状态(运行状况)

    4. YARN的工作流程(小结)

    长作业、短作业

    • 短作业,作业运行几秒、几分、几小时或几天……会正常结束的作业;
    • 长作业,如无意外,永远不停止的作业(服务部署,如Spark中的Master和Worker)

    向YARN提交一个作业(或应用程序):YARN的运行过程: 
    1、启动ApplicationMaster 
    2、由ApplicationMaster在集群中创建应用程序,为其申请资源,监控资源使用过程

    Alt text 图片1.png
    1,客户向YARN提交Application 
    2,RM为这个应用程序分配一个Container(某个NM上),RM要求该NM在分配的Container上启动应用程序的ApplicationMaster(AM) 
    3,AM向RM注册自己 
    4,AM向RM申请资源 
    5,与RM分配资源的NM通信,要求其启动Task 
    6,NM设置好运行环境之后启动任务 
    7,各Task向AM汇报进度和状态 
    8,程序运行完毕,AM向RM注销并关闭自己。

  • 相关阅读:
    深入浅出数据库索引原理
    Mysql读写分离原理及主众同步延时如何解决
    数据库连接池实现原理
    MySQL 大表优化方案(长文)
    js-ajax-03
    js-ajax-04
    js-ajax-02
    js-ajax-01
    获取html对象方式
    js-事件总结
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7711290.html
Copyright © 2011-2022 走看看