资源调度框架YARN

一.产生背景

  Hadoop1.0的时候是没有YARN,MapReduce1.X存在的问题:单点故障&节点压力大不易扩展node

  JobTracker:负责资源管理和做业调度
  TaskTracker:按期向JobTracker汇报本节点的健康情况、资源使用状况以及做业执行状况;架构

  接收来自JobTracker的命令,例如启动任务或结束任务等。框架

  

  这种架构的缺点也很明显oop

  

  上图能够看到,Hadoop集群在忙的时候Spark就比较闲,Spark集群比较忙的时候Hadoop集群就比较闲,而MPI集群则是总体并非很忙。这样就没法高效的利用资源,由于这些不一样的集群没法互相使用资源。orm

  而YARN就能够令这些不一样的框架运行在同一个集群上,并为它们调度资源。xml

  XXX on YARN:与其余计算框架共享集群资源,按资源须要分配,进而提升集群资源的利用率。blog

  XXX:Spark/MapReduce/Storm/Flink进程

 

 二.YARN架构

  

  1 ResourceMananger:RM资源

    整个集群提供服务的RM只有一个(生产中有两个,一个主,一个备),负责集群资源的统一管理和调度。it

    处理客户端的请求:提交一个做业、杀死一个做业。

    监控NM,一旦某个NM挂了,那么该NM上运行的任务须要告诉AM如何进行处理。

  2 NodeManager:NM

    整个集群中有多个,负责本身自己节点资源管理和使用。

    定时向RM汇报本节点的资源使用状况。

    接收并处理来自RM的各类命令:启动Container等。

    处理来自AM的命令。

    单个节点的资源管理。

  3 ApplicationMaster:AM

    每个应用程序对应一个:MR、Spark,负责应用程序的管理。

    为每一个应用程序向RM申请资源(core、memory),分配给内部task。

    须要与NM通讯:启动/中止task,task是运行在Container里面,AM也是运行在Container里面。

  4 Container

    封装了CPU、Memory等资源的一个容器

    是一个任务运行环境的抽象。

  5 Client

    提交做业。

    查询做业的运行进度。

    杀死做业。

三.环境配置  

  1 yarn-site.xml

    <property>

      <name>yarn.nodemanager.aux-services</name>

      <value>mapreduce_shuffle</value>

    </property>

  2 mapred-site.xml

    <property>

      <name>mapreduce.framework.name</name>

      <value>yarn</value>

    </property>

  3 启动YARN相关的进程

    sbin/start-yarn.sh

  4 验证

    jps

      ResourceManager

      NodeManager

    http://192.168.56.102:8088/

  5 中止YARN相关的进程

    sbin/stop-yarn.sh

相关文章
相关标签/搜索