Hadoop YARN

一、YARN理论

YARN是一个资源调度平台,相当于一个分布式操作系统平台

1.1.YARN基础

RM主要负责处理客户端请求,监控NodeManager,调度监控ApplicationMaster

NM管理单个节点上的资源,处理来自RM命令与来自container内部APPM的请求

AM为应用程序申请资源,以及任务的监控与容错

Container是Yarn资源抽象,封装某个节点上的多维度资源

1.2.工作机制

以MR程序举例:

RM端:当MR准备提交任务(JOB,存放split xml wc.jar),产生YarnRunner,将申请一个Application,随后提交路径,RM根据路径获取资源,资源提交完成后,运行AppMaster。之后RM将用户请求初始化为Task,放入调度器里进行任务调度

NM端:NodeManager(MRApp master)接收到任务后,创建容器,本地资源调度,并将Job资源下载到本地,随后RM申请MapTask容器,运行YarnChild任务,Reduce阶段也如此

1.3.YARN调度器

Apache 默认容量调度器

1.3.1.FIFO 先进先出

1.3.2.容量调度器

多用户调度器,多队列,某个队列一定的资源类,某个队列采用FIFO、DRF的策略

容量保证:管理员配置每个队列资源保证资源使用上限

弹性:资源弹性调度

队列资源分配:采用DFS算法,优先资源占用低的先

作业资源分配:按照作业优先级和提交时间顺序分配

容器资源分配:数据本地性原则

1.3.3公平调度器

和容量调度器核心调度策略不同

公平调度器选择对资源缺额比例大

可采用FIFO、DRF、Fair算法策略

二、YARN实践

2.1.常用命令

1
2
3
4
5
6
7
8
9
yarn application —list 查看任务

yarn application -list -appStates FINISHED

yarn application -kill application +ID 结束任务

yarn logs -applicationId<ID> 查看日志

yarn queue -status default

2.2.核心配置参数

三、尾巴