Yarn
2021-04-12 08:45:59 0 举报
AI智能生成
YARN的相关笔记脑图
作者其他创作
大纲/内容
基础知识
介绍
yarn是Hadoop集群的资源管理模块,主要的作用是资源管理和任务调度
资源包括cpu、内存、磁盘、网络IO等
任务包括运行在yarn上面的各种任务
背景
在MapReduce1.x中局限性
扩展性差:jobtracker兼顾资源管理和作业控制跟踪功能跟踪任务,启动失败或迟缓的任务,
记录任务的执行状态,维护计数器,压力大,成为系统的瓶颈
记录任务的执行状态,维护计数器,压力大,成为系统的瓶颈
可靠性差:采用了master/slave结构,master容易单点故障
资源利用率低:基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务
不会用完一个槽位的资源,hadoop1分为map slot和reduce slot,而它们之间资源不共享,
造成一些资源空闲。
不会用完一个槽位的资源,hadoop1分为map slot和reduce slot,而它们之间资源不共享,
造成一些资源空闲。
不支持多框架:不支持多种计算框架并行
yarn核心出发点是为了分离资源管理与作业监控
特点
YARN是个Master/Slave(主从)结构
支持非mapreduce应用的需求
可扩展性
提高资源使用率
用户敏捷性
可以通过搭建为高可用
组件
ResourceManager
接收并处理请求,对各NM上的资源进行统一管理和调度
Scheduler
调度器:根据各个应用的资源需求分配资源,而资源分配的单位是Container
ApplicationsManager
应用程序管理器:管理系统中所有应用程序,启动、监控App Master ,App Master失败重启等
NodeManager
节点上的资源和任务管理器,负责向RM汇报本节点的资源使用情况和各个Container的运行状态;
接收并处理ApplicationMaster的Container启动/停止等请求。
接收并处理ApplicationMaster的Container启动/停止等请求。
Container
Container是YARN中的资源抽象。它封装了某个节点的多维度资源,如内存、cpu、磁盘、网络IO等
ApplicationMaster
每个提交的应用程序都会启动一个ApplicationMaster;
负责应用的监控,跟踪应用执行状态,重启失败任务等,
向ResourceManager协调资源,
并且与NodeManager协同工作完成Task的执行和监控
负责应用的监控,跟踪应用执行状态,重启失败任务等,
向ResourceManager协调资源,
并且与NodeManager协同工作完成Task的执行和监控
yarn的调度器
FIFO Scheduler(队列调度)
不适合用于用户共享集群,大任务可能占有所有资源,从而造成阻塞
Capacity Scheduler(容量调度器,apache版本默认使用的调度器)。它有一个专门处理小任务的队列
Fair Scheduler(公平调度器,CDH版本的hadoop默认使用的调度器)
队列与队列之间,子队列与子队列之间平分资源
yarn常用参数设置
设置container分配最小内存
yarn.scheduler.minimum-allocation-mb 1024 给应用程序container分配的最小内存
设置container分配最大内存
yarn.scheduler.maximum-allocation-mb 8192 给应用程序container分配的最大内存
设置每个container的最小虚拟内核个数
yarn.scheduler.minimum-allocation-vcores 1 每个container默认给分配的最小的虚拟内核个数
设置每个container的最大虚拟内核个数
yarn.scheduler.maximum-allocation-vcores 32 每个container可以分配的最大的虚拟内核的个数
设置NodeManager可以分配的内存大小
yarn.nodemanager.resource.memory-mb 8192 nodemanager可以分配的最大内存大小,默认8192Mb
定义每台机器的内存使用大小
yarn.nodemanager.resource.memory-mb 8192
定义交换区空间可以使用的大小
yarn.nodemanager.vmem-pmem-ratio 2.1
#交换区空间就是讲一块硬盘拿出来做内存使用,这里指定的是nodemanager的2.1倍
#交换区空间就是讲一块硬盘拿出来做内存使用,这里指定的是nodemanager的2.1倍
运行流程
架构
0 条评论
下一页
为你推荐
查看更多