容量调度器多队列提交
Yarn默认的容量调度器是一条单队列的调度器,在实际使用中会出现单个任务阻塞整个队列的情况。同时,随着业务的增长,公司需要分业务限制集群使用率。这就需要我们按照业务种类配置多条任务队列,下面我就一起来看看吧。
查看默认容量调度
启动集群,在web端输入hadoop33:8088(yarn的网页访问端口)可以看到Hadoop的默认容量调度是一条单队列的调度器。
配置多队列的容量调度器
cd /opt/module/hadoop-3.1.3/etc/hadoop/
vim capacity-scheduler.xml
- 指定多队列,增加hive队列
- 降低default队列资源额定容量为40%,默认100%
- 降低default队列资源最大容量为60%,默认100%
- 添加hive队列的资源额定容量
重启Yarn查看结果
将配置文件分发至其他服务器
xsync ./capacity-scheduler.xml
重启yarn或者执行
yarn rmadmin -refreshQueues
刷新yarn的web页面可以看到
说明更改成功!
向hive队列提交任务
提交任务的方法,我们选用集群模式下提交jar包的方法,具体细节参考博主另一篇博客,链接如下:
https://blog.youkuaiyun.com/Kruskual/article/details/108522992
- 在Driver中声明添加队列的名称
修改红框内的文字
代码如下:
Configuration configuration = new Configuration();
configuration.set("mapreduce.job.queuename","hive");
Job job = Job.getInstance(configuration);
- 清除上次的jar包,并生成新的jar包
剩余步骤请参考博主博客
链接如下:
https://blog.csdn.net/Kruskual/article/details/108522992
注意删除namenode网页端已有的输出路径。
最后的操作步骤是:
输出结果
在yarn网页端可以看到:
hive队列正常运行,我是余傲,点个赞交个朋友吧。