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 | yarn application —list 查看任务 |