YARN队列管理说明
YARN队列管理说明
调整default和sla子队列的权重配比
默认情况下,若用户的队列名为foo,则会有2个子队列,分别是foo.sla 和 foo.default, 其资源分配权重比为9:1。 这样配置是为了保障用户的高优先级作业可以顺利分配到资源,但这样也会导致部分资源闲置和情况;而且在某些特定情况下,用户的作业只提交到default子队列。 这就需要调整这个默认的参数。
调整的步骤如下:
使用EasyOps,打开HadoopMeta服务,进入配置界面
新增scheduler.meta.xml配置项
若想变更所有的队列的配比,则新增一个键值对,subqueue_weight = 9:1
若只想调整某一个队列的权重配置,则新增的属性名为subqueue_weight_
重启scheduler组件,选择同步配置。
在Yarn WebUI界面验证是否生效。
Capacity调度器下绑定队列至特定Label
目前猛犸平台未实现CS调度器下的不同Label的队列绑定和管理操作,需要手动维护新建队列与所在Label的关系。
相应步骤如下:
在用户提交新建队列之前,进入HadoopMeta服务的数据库
在数据库界面,可以查看到目前已有的Label分组信息
mysql> select * from yarn_node_label;
+----+---------+-----------------+----------+----------+
| id | label | clustername | totalcpu | totalmem |
+----+---------+-----------------+----------+----------+
| 1 | offline | hdfs://cluster1 | 9920 | 31860000 |
| 2 | sloth | hdfs://cluster1 | 640 | 2160000 |
+----+---------+-----------------+----------+----------+
2 rows in set (0.00 sec)
若需要新建一个队列foo,到名为sloth 的Label中,则
mysql> desc yarn_queue_label;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| id | bigint(10) unsigned | NO | PRI | NULL | auto_increment |
| queue | varchar(64) | NO | MUL | NULL | |
| label | varchar(64) | NO | | NULL | |
| clustername | varchar(64) | NO | | NULL | |
| maxammemgb | int(11) | NO | | NULL | |
| orderpolicy | varchar(16) | NO | | fair | |
+-------------+---------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql> insert into yarn_queue_label (queue,label,clustername,maxammemgb,orderpolicy)
values ('root.foo','sloth','hdfs://cluster1',100,'fair');
注意queue的名称必须以root.
以上配置完毕后,让用户在猛犸上重新提交这个队列新建流程即可
若用户先完成了队列创建流程,则运维同学需要补充以上的操作流程,并重启scheduler服务,才能触发RM加载到正确的队列配置
Capacity调度器下调整队列的AM资源数量
在CS调度器下,队列的AM资源也有对应的限制。具体的配置信息,可以在Yarn WebUI的scheduler页面下,打开队列的详情进行查看。默认情况下AM的资源,占当前队列的10%。有些情况下,这些资源无法满足业务的需求,我们可以调整这个配比,让其最大值达到100%。
操作步骤如下:
进入HadoopMeta服务的数据库
查看要调整的队列的AM资源配置情况,以foo队列为例
mysql> select * from yarn_queue_label where id = 1;
+-----+------------+-------+-----------------------------+------------+-------------+
| id | queue | label | clustername | maxammemgb | orderpolicy |
+-----+------------+-------+-----------------------------+------------+-------------+
| 1 | root.sloth | sloth | hdfs://easyops-cluster | 20 | fair |
+-----+------------+-------+-----------------------------+------------+-------------+
mysql> update yarn_queue_label set maxammemgb = 100 where id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Maxammemgb * MaxRunningApp / MaxQueueMem 极为 AM的资源配置百分比, 这个百分比会设置到Capacity.xml中队列自身的max.am.percentag参数
以上内容对您是否有帮助?