分布式资源调度框架YARN总结

版权声明:个人博客网址 https://29dch.github.io/ 博主GitHub网址 https://github.com/29DCH,欢迎大家前来交流探讨和fork! https://blog.csdn.net/CowBoySoBusy/article/details/82925955

1.产生背景
Hadoop1.x时:
MapReduce:Master/Slave架构,1个JobTracker带多个TaskTracker
在这里插入图片描述
JobTracker: 负责资源管理和作业调度
TaskTracker:
定期向JT汇报本节点的健康状况、资源使用情况、作业执行情况;
接收来自JT的命令:启动任务/杀死任务
产生问题:单点故障,节点压力大不易扩展
在这里插入图片描述

YARN:不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度
在这里插入图片描述
XXX on YARN的好处:
与其他计算框架共享集群资源,按资源需要分配,进而提高集群资源的利用率
XXX: Spark/MapReduce/Storm/Flink
2.概述
Yet Another Resource Negotiator
通用资源管理系统
为上层应用提供统一的资源管理和调度
3.架构
在这里插入图片描述
1)ResourceManager: RM
整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度
处理客户端的请求: 提交一个作业、杀死一个作业
监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM来如何进行处理

  1. NodeManager: NM
    整个集群中有多个,负责自己本身节点资源管理和使用
    定时向RM汇报本节点的资源使用情况
    接收并处理来自RM的各种命令:启动Container
    处理来自AM的命令
    单个节点的资源管理

  2. ApplicationMaster: AM
    每个应用程序对应一个:MR、Spark,负责应用程序的管理
    为应用程序向RM申请资源(core、memory),分配给内部task
    需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面

  3. Container
    封装了CPU、Memory等资源的一个容器
    是一个任务运行环境的抽象

  4. Client
    提交作业
    查询作业的运行进度
    杀死作业

4.执行流程
在这里插入图片描述
5.环境搭建
/home/zq/hadoop-2.6.0-cdh5.7.0/etc/hadoop
1)mapred-site.xml(会发现没有这个文件,只有一个模板文件,改一下名字即可)

mapreduce.framework.name
yarn

2)yarn-site.xml

yarn.nodemanager.aux-services
mapreduce_shuffle

  1. 启动YARN相关的进程
    sbin/start-yarn.sh

4)验证
 jps
ResourceManager
NodeManager
在这里插入图片描述
或者:
http://zq:8088
在这里插入图片描述

5)停止YARN相关的进程
sbin/stop-yarn.sh

6.提交作业到YARN上面执行
样例:
/home/zq/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce2/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 2 3
还有很多其他的,自己可以一一尝试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CowBoySoBusy/article/details/82925955