分布式资源调度框架YARN
启动JobHistoryServer
在伪分布式模式下,先开启hadoop和启动历史服务:
start-all.sh
mr-jobhistory-daemon.sh start historyserver
可以查看jobHistory:
http://192.168.247.201:19888/jobhistory
一般用来处理,对集群来说执行的时间过长,或者发生执行错误的情况。考虑是否发生了类似数据倾斜,集群某个节点卡死的问题,这时候需要去查看执行情况。
YARN概念
YARN的由来
- 1、Hadoop1.x版本中最大的问题是资源问题
对数据的处理和资源调度主要依赖MapReduce完成,只能运行MapReduce程序
JobTracker负责资源管理和程序调度,压力较大 - 2、Hadoop2.x版本添加YARN
主要负责集群资源管理
YARN概述
- YARN(Yet Another Resource Negotiator)核心思想是将资源管理和任务的监控和调度分离
通用的资源管理系统,可为不同的应用(MapReduce、Spark、Flink等)提供统一的资源管理和调度
它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处
YARN基本架构
YARN的基本架构核心组件
- 1、YARN的架构是master/slaves的主从架构
1.1 master:ResourceManager->全局资源管理
负责集群全局统一的资源管理、调度、分配
1.2 slave:NodeManager->节点资源管理器
启动了NodeManager进程的节点
负责管理节点的资源及使用情况 - 2、YARN核心组件(包含ResourceManager和NodeManager)
2.1 ApplicationMaster
2.2 Container
YARN架构核心组件-ResouceManager
- 1、ResourceManager组成
1.1 ResourceScheduler—>资源调度器,根据节点的容量、列队情况,为应用程序分配资源
1.2 Application Manager—>应用程序管理器,负责接受Client端传输的job请求 - 2、ResourceManager功能
2.1 处理客户端请求
2.2 监控NodeManager
2.3 启动和监控ApplicationMaster,进行必要的重启
2.4 整个系统的资源分配和调度
YARN架构核心组件-NodeManager
- 1、NodeManager功能
1.1 本节点上的资源管理和任务管理
1.2 定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行情况
1.3 接收和处理来自ResourceManagerd的Container启动和停止的各种命令
1.4 处理来自ApplicationMaster的指令,比如启动Map Task和Reduce Task指令
YARN架构核心组件-ApplicationMaster
- 1、ApplicationMaster功能
1.1 每个应用程序对应一个ApplicationMaster,负责单个应用程序的管理
1.2 负责数据切分
1.3 为应用程序向ResourceManager申请资源(Container),并分配内部任务(MapTask和ReduceTask)
1.4 与NodeManager通信来启动/停止任务,Task都是运行在Container中的
1.5 负责任务的监控和容错,当某些Task运行出错,运行容错处理
YARN架构核心组件-Container
- 1、Container是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等
- 2、Container类似于一个虚拟机,可以在上面执行任务
YARN的工作机制
YARN上提交MapReduce程序步骤
- 1、运行框架自带的MapReduce程序
1.1 Jar位置($HADOOP_HOME/share/hadoop/mapreduce)
1.2 Jar名称(hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar) - 2、执行WordCount程序
#hadoop jar /jar包目录/指定jar包名称 wordcount /输入路径 /输出路径
hadoop jar /opt/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/data /user/out
- 3、使用YARN WebUI查看任务执行情况
3.1 YARN整体资源情况
3.2 Mapper运行情况详细信息
3.3 Reducer运行情况详细信息
3.4 任务历史信息
作业历史服务JobHistoryServer
- 1、JobHistoryServer:作业历史服务
记录在yarn中调度的作业历史运行情况 - 2、启动JobHistoryServer
2.1 命令位置($HADOOP_HOME/sbin/mr-jobhistory-daemon.sh)
2.2 启动命令(集群中每台都执行)
mr-jobhistory-daemon.sh start historyserver
2.3 验证(jps查看进程,存在JobHistoryServer进程证明启动成功)
YARN的资源调度器
- 1、目前Hadoop作业调度器有三种
FIFO:先进先出调度器
Capacity Scheduler:容量调度器
Fair Scheduler:公平调度器 - 2、默认的作业调度器可以在yarn-default.xml文件中查看,属性如下
yarn.resourcemanager.scheduler.class
Hadoop版本2.6.0-cdh5.14.2的默认调度器是公平调度器
YARN常用命令
- 1、任务管理
-
- 1.1 查看正在运行的任务
yarn application -list
-
- 1.2 杀掉正在运行的任务
yarn application -kill 任务id
- 2、节点管理
-
- 2.1 查看节点列表
yarn node -list
-
- 2.2 查看节点状态
yarn node -status 节点ID