YARN

  1. YARN简介
    1. 什么是YARN
    2. YARN产生背景
  2. YARN的架构和执行流程
    1. ResourceManager(RM)
    2. NodeManager(NM)
    3. ApplicationMaster(AM)
    4. Container
    5. Client
  • YARN环境搭建
  • YARN简介

    什么是YARN

    • Yet Another Resource Negotiator,另一种资源调度器
    • 通用资源管理系统
    • 为上层应用提供统一的资源管理和调度,为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处

    YARN产生背景

    • 通用资源管理系统
      • Hadoop数据分布式存储(数据分块,冗余存储)
      • 当多个MapReduce任务要用到相同的hdfs数据,需要进行资源调度管理
      • Hadoop1.x时并没有YARN,MapReduce既负责进行计算左右又要处理服务器集群资源调度管理
    • 服务器集群资源调度管理和MapReduce执行过程耦合在一起带来的问题
      • Hadoop早期,技术只有Hadoop,这个问题不明显
      • 随着大数据技术的发展,Spark、Storm····计算框架都要用到服务器集群资源
      • 如果没有通用资源管理系统,只能为多个集群分别提供数据
    • 不同计算框架可以共享同一个HDFS集群上的数据,享受整体资源调度

    YARN_1

    YARN的架构和执行流程

    ResourceManager(RM)

    • RM资源管理器;
    • 整个集群同时提供服务的RM只有一个,负责集群资源的统一管理和调度;
    • 处理客户端的请求;
    • 监控NM,一旦某个NM挂了,那么改NM上运行的任务需要我们来告诉AM来如何进行处理

    NodeManager(NM)

    • NM节点管理器
    • 整个集群中有多个,负责自己节点资源管理和使用
    • 定时向RM汇报本节点的资源使用情况
    • 接收并处理来自RM的命令:启动Container
    • 处理来自AM的命令

    ApplicationMaster(AM)

    • 每一个应用程序对应一个:MR,Spark
    • 负责应用程序的管理
    • 为应用程序向RM申请资源(core、memory),分配给内部的task
    • 需要与NM通讯:启动/停止task
    • Task和AM都是运行在Container中的

    Container

    • 容器:封装了CPU、Memory等资源的一个容器,是一个任务运行环境的抽象

    Client

    • 提交作业
    • 查询作业进度
    • 杀死作业

    YARN_1

    1. Client提交作业请求
    2. RedourceManager进程和NodeManager进程通信,根据集群资源,为用户程序分配第一个Container(容器),并将ApplicationManager分发到这个容器上面
    3. 启动Container中的ApplicationMaster
    4. ApplicationMaster启动后向ResourceManager注册进程,申请资源
    5. ApplicationMaster申请到资源后,向对应的NodeManager申请启动Container,将要执行的程序分发到NodeManager上
    6. Container启动后执行对应的任务
    7. Task执行完毕之后,向ApplicationMaster返回结果
    8. ApplicationMaster向ResourceManager请求kill

    YARN环境搭建

    • mapred-site.xml
    1
    2
    3
    4
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    • yarn-site.xml
    1
    2
    3
    4
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    • 启动YARN相关进程sbin/start-yarn.sh
    • http://ip:8088验证
    • 停止YARN相关进程sbin/stop-yarn.sh

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zoubinbf@163.com

    ×

    喜欢就点赞,疼爱就打赏