第四部份 Hadoop3.x之Yarn
一、Yarn概述
Yarn是一个资源调度平台。
1.1 Yarn基础架构
1.2 Yarn工作机制
二、Yarn调度器
2.1 先进先出调度器FIFO
单队列,大数据多并发一般不使用
2.2 容量调度器Capacity Scheduler(默认)
- 特点
- 多队列
每个队列分配一定资源,采用FIFO调度策略 - 容量保证
每个队列设置最低资源保证和资源使用上限 - 灵活性
资源借调 - 多租户
并行和限制
- 算法
- 队列资源分配
优先资源占用率低 - 作业资源分
优先级&>提交时间 - 容器资源分配
优先级&>数据本地性原则
2.3 公平调度器Fair Scheduler
-
特点
基本同容量调度器 -
算法
-
FIFO策略
-
Fair公平策略
- 队列资源分配
优先为缺额大的分配资源 - 最小资源份额: mindshare = Min (资源需求量,配置的最小资源)
- 是否饥饿: isNeedy = 资源使用量 < mindshare (最小资源份额)
- 资源分配比: minShareRatio = 资资源使用量 / Max (mindshare,1)
- 资源使用权重比: useToWeightRatio = 资源使用量 / 权重
- 作业资源分配
每次都按权重或平均分配所有资源,回收多余资源后再次分配,直到没有空闲资源。
- DRF策略
Dominant Resource Fairness分别设定CPU和内存资源的分配
三、Yarn常用命令
3.1 查看任务
#列出所有Application
yarn application -list
#根据Application状态过滤(所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)
yarn application -list -appStates FINISHED
#杀死任务
yarn application -kill <ApplicationId>
3.2 查看日志
#查看Application日志
yarn logs -applicationId <ApplicationId>
#查看容器日志
yarn logs -applicationId <ApplicationId> -containerId <ContainerId>
3.3 查看尝试运行的任务
#查看Application尝试的列表
yarn applicationattempt -list <ApplicationId>
#查看Application尝试的状态
yarn applicationattempt -status <ApplicationAttemptId>
3.4 查看容器
#查看Application尝试的容器列表
yarn container -list <ApplicationAttemptId>
#查看容器状态(只能查看进行中的任务的容器)
yarn container -status <ContainerId>
3.5 查看节点状态
yarn node -list -all
3.6 刷新队列配置
yarn rmadmin -refreshQueues
3.7 查看队列
yarn queue -status default