资源调度框架——YARN
YARN的产生背景
- MapReduce1.x存在的问题:单点故障(JT)&节点(JT)压力大不易拓展&必能支持除了reduce之外的作业
它也是采用类似的心跳机制- 资源利用率低&运维成本高
- 由此催生了YARN,是的不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度,
不同的计算框架在YARN上面工作的好处:按资源需要分配,进而提高集群资源的利用率YARN架构
YARN是通用的资源管理系统
为上层的应用提供统一的资源管理和调度
- 整个集群同一时间服务的RM只有一个,负责集群资源的统一管理和调度
- 处理客户的请求:提交一个作业,杀死一个作业
- 监控我们的NM,一旦某个NM挂了,那么该NM上面运行的任务需要告诉我们的的AM如何进行处理
- 整个集群中有多个,负责指自己本身节点资源管理和使用
- 定时想RM汇报本节点的资源使用情况
- 接受并处理来自RM的各种命令:启动Container
- 处理乃是AM的命令
- 自己的资源自己管理
- 每一应用程序对应一个:MR、Spark,负责对应应用程序的管理
- 为应用程序向RM申请资源(core,memory),分配给内部tasks
- 需要与我们的NM通信:启动/停止task,task是运行再container里面,AM也是运行在container里面
- 封装了CPU,Memory等资源的一个容器
-是一个任务运行的环境的抽象
- 提交作业
- 询问作业的运行进度
- 杀死作业
YARN环境搭建【参见官方文档进行xml配置文件的写入】(版本:hadoop-2.6.0-cdh5.7.0)
- (进入hadoop的配置文件夹里面操作)mapred-site.xml
- (进入hadoop的配置文件夹里面操作)yarn-site.xml
- 启动YARN相关的进程
- 验证:
方式一 方式二 jps命令查看进程(ResourceManager进程,NodeManager进程) 通过默认的端口http://服务器名称:8088
- 运行MapReduce作业
- 停止进程(实际生产过程中不停止):$ sbin/step-yarn.sh
提交MapReduce作业到YARN运行(hadoop根目录的share/hadoop/mapreduce/下面存在一个example的jar包我们且称它为example.jar)
hadoop jar example.jar [此处添加mainClass如:数学里面的pi] [添加该类必要的参数(一个或者多个)]