目录
1.YARN 产生背景
2.YARN概述
3.YARN架构(面试考点,务必要了解整个架构)
4.YARN执行流程(面试考点,务必要了解整个执行流程)
5.YARN环境搭建
6.提交作业到YARN上执行
1、YARN 产生背景
在Hadoop1.X时,MapReduce是Master/Slave的架构,1个JobTracker带多个TaskTracker
JobTracker:负责资源管理和作业调度
TaskTracker:定期向JT汇报本节点的健康状况、资源使用情况、作业执行情况;接受来自JT的命令:启动任务/杀死任务
MapReduce1.x 存在的问题:单点故障&节点压力大不易扩展&不支持除了MapReduce之外的其他计算框架
image.png
资源利用率低&集群之间不能共享资源&运维成本高、管理困难
image.png
因此,催生了YARN的诞生
有了YARN(集群资源管理)之后,可以运行多个不同类型的作业和多种不同的计算框架。可以把YARN理解为是 操作系统级别的资源调度框架 ,它让更多的计算框架(Spark、MapReduce、Storm、Flink等)运行在同一个集群中,不同的计算框架之间可以共享同一个HDFS集群上的数据、享受整体的资源调度。
xxx on YARN的好处:与其他计算框架共享集群资源、按资源需要分配,进而提高集群资源的利用率
xxx :Spark、MapReduce、Storm、Flinkimage.png
2、YARN概述
Yet Another Resource Negotiator
通用的资源管理系统
为上层应用提供统一的资源管理和调度
3、YARN架构(面试考点,务必要了解整个架构的执行流程)
1)ResourceManager:RM
整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度;处理客户端的请求:提交一个作业、杀死一个作业;监控NM,一旦某个NM挂了,则该NM上运行的任务需要告诉我们的AM该如何处理;
2)NodeManager:NM
整个集群中有多个,负责自己本身节点资源管理和使用,定时向RM汇报本节点的资源使用情况;接受并处理来自RM的各种命令:启动Container;
处理来自AM的命令;单个节点的资源管理;
3)ApplicationMaster:AM
每个应用程序对应一个AM:MR、Spark,负责应用程序的管理;为应用程序向RM申请资源(core、memory),分配给内部task,需要与NM通信:启动/停止task,task是运行在Container里面,AM也是运行在Container里面的。
4)Container
封装了CPU、Memory等资源的一个容器;是一个任务运行环境的抽象
5)Client
提交作业;查看作业运行进度;杀死作业
image.png
4、YARN执行流程
image.png
5、YARN环境搭建(单节点)
1)使用版本
hadoop-2.6.0-cdh5.7.0.tar.gz
2)修改配置文件
etc/hadoop/mapred-site.xml
(第一次使用的时候,会发现在etc/hadoop/目录下并没有mapred-site.xml文件,只有mapred-site.xml.template,此时只需要复制一份mapred-site.xml.template重命名为mapred-site即可)在终端输入如下命令:
#复制mapred-site.xml.template重命名为mapred-site.xmlcp mapred-site.xml.template mapred-site.xml #打开mapred-site.xml vim mapred-site.xml
把下面代码添加到mapred-site.xml 文件中即可
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
效果如图
image.png
etc/hadoop/yarn-site.xml
同上,打开yarn-site.xml,把下面代码添加进去即可
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
3)启动
sbin/start-yarn.sh
4)验证
jps:多次两个进程NodeManager、 ResourceManager
打开浏览器:http://localhost:8088/
image.png
5)停止
sbin/stop-yarn.sh
6、提交MapReduce作业到YARN上执行
在/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce
路径下,有官方提供的MapReduce的案例jar包:hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar
在终端输入以下命令:
#这条命令是运行官方提供的计算pi的案例hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3
在浏览器中输入 http://localhost:8088/ 可以看到刚刚提交的作业,刷新页面查看作业的运行状态。
image.png
在终端可以查看到运行的结果
image.png
作者:艳阳景
链接:https://www.jianshu.com/p/0e07041a6556
共同学习,写下你的评论
评论加载中...
作者其他优质文章