vlambda博客
学习文章列表

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

文档编写目的



在CDP DC上,YARN资源的调度程序默认为Capacity Scheduler。我们可以通过YARN Queue Manager UI来界面化配置YARN的资源队列,队列权重,队列资源,以及队列的ACL等。本文主要讲述如何在CDP DC 7.0.3集群上使用YARN Queue Manager UI来控制队列的资源分配和队列的提交策略。


  • 测试环境:

1.Redhat7.6

2.采用root用户操作

3.CM和CDP DC版本为7.0.3


创建队列并配置资源比例



1.在集群创建下列用户,并配置到不同的组。

如下图,用户usera,userb,userc,userd,usere所属的组都跟自己同名。用户userf的组为usere,与用户usere为同一个组。 


2.在CM上点击集群,再点击YARN Queue Manager UI进入队列管理界面

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


3.点击root旁边的三个点,进行子队列的创建,这里分别创建队列usera和userb

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


点击后,进行添加,设置队列名和CONFIGURED CAPACITY的百分比,这里所有队列的CONFIGURED CAPACITY百分比加起来必须是100%,否则不能保存。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


全部添加完之后,如下图

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


4.分别提交任务到root.usera和root.userb

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


点击蓝色的application进行查看任务运行情况,再点击下面的Scheduler查看资源分配情况

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


看一下当前资源分配情况,符合设置

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


5.修改队列usera和userb的比例,再刷新页面进行查看

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


修改完成后,再刷新Scheduler页面进行查看,可以看到资源分配已经动态进行了调整。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


设置队列的Mapping策略



1.为用户和用户组指定资源池队列

从YARN Queue Manager UI中点击Scheduler Configuration进行Queue Mappings的配置。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

u:usera:usera,u:userb:userb,g:usere:usera


输入上面的配置保存,如下图。该配置是把用户usera提交的应用提交到usera队列,把用户userb提交的应用提交到userb队列。然后是usere组的用户提交的应用会默认配置到usera队列中。每个配置之间用逗号分隔。会依次从左到右进行匹配,匹配到第一个符合要求的队列后就提交到该队列,终止匹配。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


2.不指定资源池队列,提交应用进行测试。

先klist看当前初始化的principal,然后用下面的命令不指定资源池队列直接进行任务的提交。

[root@cdh02 ~]# klist
[root@cdh02 ~]# hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 1 1


任务跑起来后,在终端看到当前的application为application_1582965765783_0004

再去YARN应用程序查看该application提交到的资源池。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

可以看到用户usera在不指定队列的情况下,提交应用到了usera队列。我们配置的策略生效了。


3.同样的,再对其他的用户进行不指定资源池提交任务测试

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


用户userb提交的应用也提交到了userb,符合我们的配置规则。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


userc我们没有配置提交的队列策略,所以在不指定队列的时候,会默认提交到default池。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

用户usere和userf都是属于用户组usere,所以他们都提交到了usera队列,符合我们设置的策略。


4.为用户和组配置队列映射到具有相同名称的队列,下面图是指定所有应用程序都提交到与主要组名称相同的队列里。

u:%user:%primary_group


0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


提交任务进行测试

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


上图可以看到用户usera提交任务到了usera队列,符合要求。下面再用userf来进行测试。

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源

上图也可以看到,用户userf提交任务到了他的主要组usere同名的队列上,但是由于我们并没有创建usere这个资源池队列,所以任务执行失败。符合我们的配置策略。


5.还可以配置用户提交任务到与用户名相同的池里,配置方法如下

0761-7.0.3-如何使用YARN Queue Manager UI配置集群资源


提交任务进行测试,也符合配置策略。


总结




1.管理员可以定义默认的映射策略,以将用户提交的应用程序自动提交到指定队列。而无需在提交应用程序时指定队列名称。 

2.在勾选了Override Queue Mappings配置后,用户在指定提交的队列时,可以跳过配置的队列映射,而提交到用户指定的资源池队列中。

3.队列映射是使用逗号来进行分隔多个映射的。

4.在使用多个映射分配的情况下,Capacity Scheduler以从左到右的顺序处理映射匹配,以确定首先使用哪个映射。在匹配到第一个符合的映射后,就停止往后继续匹配。

5.对于没有配置的的映射策略,则默认提交到default资源池队列中。

6.可以通过u:%user:%user或者u:%user:%primary_group来配置策略,让用户提交到与自己同名或者与自己的主要组同名的资源池队列中。

7.通过配置CONFIGURED CAPACITY的百分比,来对集群的资源按比例分配到不通的资源池队列中。