hadoop资源调度框架YARN

YARN产生的背景

Hadoop1.x版本时候,包含的MapReduce1.x存在单点故障和节点压力大,不易扩展的问题。

当时MapReduce的架构为:Master/Slaves架构,在实现上就是1个JobTracker带多个TaskTracker。

JobTracker:负责资源管理和作业调度

TaskTracker:定期向JT汇报本节点的健康状况、资源使用情况、作业执行情况;接收来自JT的命令:启动任务/杀死任务。




YARN可以使不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度。说白了,就是在YARN之上可以运行很多个计算框架。

XXX ON YARN的好处:这里的XXX有Spark/MapReduce/Storm/Flink,与其他计算框架共享集群资源,按资源需要分配,进而提高集群资源的利用率。

YARN概述

》Yet     Another    Resource    Negotiator (YARN)

》通用的资源管理系统

》为上层提供统一的资源管理和调度

YARN架构


1) ResourceManager:RM

       1、 整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度。

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

       3、监控NM健康状况,一旦某个NM挂了,那么该NM上运行的任务需要告诉AM。

2) NodeManager:NM

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

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

      3、接收并处理来自RM的各种命令:比如启动Container。

      4、处理来自AM的命令。

      5、单个节点的资源管理。

3) ApplicationMaster:AM

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

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

    3、需要与NM通信:启动/停止task,task是运行在container里面,AM也运行在container里面。

4) Container:

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

2) Client:

   1、提交作业

   2、查看作业的运行进度

   3、杀死作业

YARN执行流程


YARN环境搭建
        使用版本Hadoop2.6.0-cdh5.7.0

        yarn-site.xml

      第一步:   配置etc/hadoop/mapred-site.xml

           

               

                     mapreduce.framework.name

                     yarn

               

               

                     配置etc/hadoop/yarn-site.xml:

           

               

                yarn.nodemanager.aux-services

                mapreduce_shuffle

               

         

第二步:启动ResourceManager和NodeManager相关进程

sbin/start-yarn.sh

第三步:验证是否启动成功

方式一:jps命令

方式二:通过浏览器方式验证,ResourceManager 默认路径端口为: http://localhost:8088/

第四步:停止ResourceManager和NodeManager相关进程

sbin/stop-yarn.sh

提交作业到YARN上执行

用hadoop提供的测试作业样例来小试牛刀

样例位置在:/usr/hadoop/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar

命令为:hadoop jar 你的应用.jar   命名 参数

就我们的这个命令来说为:hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar  pi 3 5


你可能感兴趣的:(hadoop资源调度框架YARN)