Hadoop的三个核心:Mapreduce HDFS Yarn

一 Yarn的产生背景

一 Mapreduce1.x存在的问题:

1.单节点故障

2.节点压力大不易扩展

3.支持框架单一,无法运行spark框架,storm框架等

yarn的资源调度慢如何排查_mapreduce


(client 客户 提交作业 jobtracker资源管理和作业调度 主节点 tasktracker )

二 资源利用低,运维成本高,资源无法共享

yarn的资源调度慢如何排查_hadoop_02


yarn的资源调度慢如何排查_yarn的资源调度慢如何排查_03


不管使用什么框架,我们都是用Yarn调度分配的。

二 Yarn的优点

与其他计算框架共享集群资源,按需分配提高系统的利用率

三 Yarn的概述

Yarn:yet another resource negotiator 另一个资源管理者

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

四 Yarn的架构

yarn的资源调度慢如何排查_hadoop_04


ResourceManager:(RM)资源管理,负责集群资源的统一管理和调度,要求整个集群中(同一时间)提供的RM只能有一个(实际上只有两个,备份的一个,因为怕一个挂掉了)

处理客户端的请求:提交的作业,杀死作业,监视NM的使用情况,告诉AM怎么去处理

NodeManager:(NM)定时向RM汇报本节点的资源使用情况和健康状况,在集群中有好多个,只负责自己的资源管理和使用

ApplicationMaster:(AM)每个应用程序对应一个AM,AM为应用程序向RM申请资源,分配给内部的Task,与NM通信:启动,停止task,task运行在container中,AM也是运行在Container中

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

Client:提交作业,查看作业运行进度,杀死作业

五 Yarn的执行流程

yarn的资源调度慢如何排查_hadoop_05


1.Client提交作业到RM中,

2.RM会创建第一个Container(放AM的,第一个Container)在NM上 (节点上)

3.Container启动AM(放应用程序的)

4.AM向RM申请资源,RM审批成功

5.AM按照RM给的资源分别向NM通信,在所用到的节点创建Container, 启动Container(程序执行的)

6.NM上的Container中启动Task,进行执行计算五 YARN环境搭建

1.mapred-site.xml

yarn的资源调度慢如何排查_hadoop_06


将这个副本复制

cp mapred-site.xml.template mapred-site.xml

yarn的资源调度慢如何排查_yarn的资源调度慢如何排查_07


yarn的资源调度慢如何排查_mapreduce_08

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

yarn的资源调度慢如何排查_hdfs_09


2.yarn-site.xml

yarn的资源调度慢如何排查_spark_10

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

yarn的资源调度慢如何排查_hdfs_11


3.启动相关的yarn

在sbin目录下启动start-yarm.sh

yarn的资源调度慢如何排查_hdfs_12


4.验证

yarn的资源调度慢如何排查_spark_13


在网页上打上ip+:8088

yarn的资源调度慢如何排查_mapreduce_14


六 Mapreduce作业提交到Yarn上运行

yarn的资源调度慢如何排查_hdfs_15


yarn的资源调度慢如何排查_spark_16


查看这个jar包的功能

yarn的资源调度慢如何排查_hdfs_17


yarn的资源调度慢如何排查_spark_18


yarn的资源调度慢如何排查_mapreduce_19


yarn的资源调度慢如何排查_hdfs_20


结果

yarn的资源调度慢如何排查_mapreduce_21