产生背景
MapRdeuce1.x 存在问题
image.png
master/slave:JobTracker / TashTracker
问题:
JobTracker: 单点,如果挂掉了就会整个崩掉
想扩展的话,jobTracker是一个瓶颈
仅仅只能够支持mapreduce作业,
资源利用率 &运维成本
所有的计算框架运行在一个集群中,共享一个集群的资源,做到按需分配
催生了YARN的诞生
image.png
YARN概述
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
- Yet Another Resource Negotiator
- 通用的资源管理系统
1. job scheduling
2. monitoring - 为上层应用提供统一的资源管理和调度
YARN架构
Clinet、ResourceManager、NodeManager 、ApplicationMaster、
Master / slave
Clinet: 向RM提交任务、杀死任务等
ApplicationMaster:
i 每个应用程序对应一个AM
ii AM 向RM申请资源用于在NM上启动对应的Task
iii 数据切分
iv 为每个task向RM申请资源(container),与NodeManager通信
v 任务的监控
NodeManager:多个
i 干活(计算)
ii 向RM发送心跳信息、任务的执行情况、启动任务
iii 处理来自AM的命令,
ResourceManager:集群中同一时刻对外提供服务的只有一个,负责资源相关
i 处理来自客户端的请求: 提交 / 杀死
ii 启动 / 监控AM
iii 监控NM
container:任务的运行抽象(memory、cpu)
i task是运行在container里面的,可以运行am、也可以运行map、reduce 等
启动yarn
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
提交:
cd /home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar pi 2 3
提交自己开发的作业到YARN上运行的步骤:
1 mvn clean package -DskinTests
2 把编译出来的jar包以及测试数据上传到服务器
scp
3 把数据上传到HDFS
hadoop fs -put xxx
4 执行作业
hadoop jar xxx.jar 包名+类名 args...
5 到YARN UI(8088)上去观察作业的运行情况
6 到输出目录去查看对应的输出情况
网友评论