Hadoop的三个核心:Mapreduce HDFS Yarn
一 Yarn的产生背景
一 Mapreduce1.x存在的问题:
1.单节点故障
2.节点压力大不易扩展
3.支持框架单一,无法运行spark框架,storm框架等
(client 客户 提交作业 jobtracker资源管理和作业调度 主节点 tasktracker )
二 资源利用低,运维成本高,资源无法共享
不管使用什么框架,我们都是用Yarn调度分配的。
二 Yarn的优点
与其他计算框架共享集群资源,按需分配提高系统的利用率
三 Yarn的概述
Yarn:yet another resource negotiator 另一个资源管理者
为上层应用提供统一的资源管理和调度
四 Yarn的架构
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的执行流程
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
将这个副本复制
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.启动相关的yarn
在sbin目录下启动start-yarm.sh
4.验证
在网页上打上ip+:8088
六 Mapreduce作业提交到Yarn上运行
查看这个jar包的功能
结果