三、Hadoop权威指南学习(YARN)

部分基础以及yarn sls:https://mp.csdn.net/postedit/83991164

yarn应用可以在运行中的任意时刻提出资源申请。1.在最开始提出所有请求(spark);2.为了满足不断变化的应用需要采取根伟动态的方式在需要更多资源时提出请求。

yarn应用的生命周期:

1.一个用户作业对应一个应用(MapReduce)

2.作业的每个工作流或每个用户对话对应一个应用(spark)

3.多个用户共享一个运行的应用。通常作为一种协调者的角色(application master)

yarn与MapReduce1b:

可扩展性好:MapReduce1的jobtrack必须同时管理和任务,yarn利用rm和application master分离的架构有点克服了这个局限性

可用性好

利用率高 : MapReduce1slot是静态分配的,一个slot仅能运行一个任务,yarn管理是一个资源池,精细化管理,按需请求资源。

多租户

yarn的三种调度器:FIFO,capacity(容量调度器,一个独立的专门队列保证小作业一提交就可以启动),fair

三、Hadoop权威指南学习(YARN)_第1张图片

 

容量调度器:耽搁作业实用的资源不会超过其队列容量,但如果队列中有多个作业并且队列资源不够用就会采用“弹性队列”,将空余的资源分配给队列中的作业,哪怕会超出队列容量。

但容量调度器不会通过强行中止来抢占容器。只能等待其他队列释放容易资源。缓解方法是给队列设置一个最大容量限制(会牺牲队列弹性)

三、Hadoop权威指南学习(YARN)_第2张图片

prod可能会占用所有集群资源,eng或science可能会占用dev队列的所有容量(最高可到75)

如果不指定队列,将会放到默认队列中(default)

公平调度器:

三、Hadoop权威指南学习(YARN)_第3张图片

三、Hadoop权威指南学习(YARN)_第4张图片

prod和dev按40:60比例分配,eng和science没有指定就平均分配。

queuePlacementPolicy包含了一个规则列表,每条规则会被依次尝试直到匹配成功,specified:把应用放在指明的队列中,如果没有指明或者指明的队列不存在,则规则不匹配,继续尝试下一条规则。primaryGroup:把应用放在以用户为主Unix组名命名的队列中,如果没有这样的队列,则继续尝试吓一跳规则而不是创建队列。default是兜底规则,都不匹配时,将启动该条规则,吧应用放进dev.eng队列中。

如果没有queuePlacementPolicy,默认除非明确定义队列,否则必要时会以用户名为队列名创建队列。

公平调度器也支持队列级别的FIFO策略,以及drf策略(dominant resource fairness)

drf策略:https://blog.csdn.net/wdkirchhoff/article/details/76408638

三、Hadoop权威指南学习(YARN)_第5张图片

抢占(preemption):允许调度器中止占用资源超过了其公平共享份额的队列的容器,这些容易资源释放后分配给低于应得份额的队列。(抢占会降低整个集群的像驴,因为被中止的container需要重新执行)

yarn.scheduler.fair.preemption设置为true。两个抢占超时设置:一个用于最小共享(minimum share preemption timeout)如果在指定时间内获得的被许诺的最小资源,那么调度器就会抢占其他容器;另一个是用于公平共享(fair share preemption timeout)如果在指定时间内获得的资源仍低于其公平共享份额的一半,那么调度器就会抢占其他容器。默认情况下,这两个均不设置,所以为了允许抢占容易,需要至少设置一个超时参数。

 

yarn SLS部分:

sls-runner.xml中配置基础设置:sls,NM,container,metrics,apps configuration

三、Hadoop权威指南学习(YARN)_第6张图片

yarn-site.xml中配置调度器信息,最大应用数等(后面的调度器可能有自己设置的最大调度限制)

 

 

 

你可能感兴趣的:(yarn,hadoop)