zoukankan      html  css  js  c++  java
  • 资源调度框架YARN

    一.产生背景

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

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

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

      

      这种架构的缺点也很明显

      

      上图可以看到,Hadoop集群在忙的时候Spark就比较闲,Spark集群比较忙的时候Hadoop集群就比较闲,而MPI集群则是整体并不是很忙。这样就无法高效的利用资源,因为这些不同的集群无法互相使用资源。

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

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

      XXX:Spark/MapReduce/Storm/Flink

     二.YARN架构

      

      1 ResourceMananger:RM

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

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

        监控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

  • 相关阅读:
    多线程 介绍
    AE中如何获取曲线的一部分(转)
    friday
    THU
    MON
    SAT
    周三
    TUE
    绝对遗憾!
    monday
  • 原文地址:https://www.cnblogs.com/cracker13/p/10082101.html
Copyright © 2011-2022 走看看