背景:集群有若干任务在线上执行其中的一个任务资源占用量大执行时间长,导致无法正常在生产环境进行hive的活动,影响问题排查等工作,可以通过资源隔离来解决这个问题。
配置思路:
将日常任务与随机需求隔离,日常任务有hive脚本,mr任务产看job信息得到用到的用户有三个:ubun,hive,admin;因此可以新增用户,然后给新增的用户设置单独的资源队列,其他用户均使用default队列即可;
配置过程:
- 设置两个yarn集群参数,禁止自动创建资源队列
- yarn.scheduler.fair.user-as-default-queue false
- yarn.scheduler.fair.allow-undeclared-pools
2.创建动态资源池
- 创建资源池并且将原有资源池进行更改
- 创建新增用户的资源池,不要设置为父池!
- 将原有的资源池自动创建选项都去掉
- 根据自身需求来设置资源权重我这里讲default设置为8其余两个为1
3.定义放置规则
注意顺序即可。
4.用户限制根据自身需求设置即可一般情况下只有特殊关注的才设置为单独用户使用比如新增的队列为haha那么haha队列就只能有haha用户可以访问其他的队列不做特殊处理。