当多个任务提交到一个队列上时,如果想让后提交的任务优先执行,就需要有任务优先级机制来帮助。
下面介绍如何开启任务优先级配置,以及设置任务优先级。
一、开启任务优先级配置
在 resource manager yarn-site.xml
中添加 yarn.cluster.max-application-priority
,然后重启 rm。
<property>
<name>yarn.cluster.max-application-priority</name>
<value>80</value>
</property>
注意:
- 这个参数是 rm 端参数,无需添加到 nm
- 最大值可以自己设置
- rm 在 2.8.0 之后才支持此配置
二、设置任务优先级
一)MapReduce 任务
添加参数
-D mapreduce.job.priority=30
测试:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount -D mapreduce.job.priority=30 /input /output
二)Hive/Tez 任务
添加参数
set tez.am.application.priority=30;
三)注意
提交任务的客户端需要支持任务优先级配置
如 hadoop 提交 mr 程序,需要客户端版本在 2.8.0 以上