amq如何命令行查看queue_0808-如何在CDP指定Hive SQL的资源池队列

文档编写目的

Fayson在CDP7.1.1 的使用过程中,发现在使用Hive SQL 中默认无法修改Hive 的资源池,只能提交到defalut 或者 root.hive 队列下,而且显示的提交用户都是hive。这对于一个生产环境中的资源池管理是致命的缺陷,本文主要介绍在CDP7.1.1中如何配置用户的Hive SQL 的资源池队列

  • 测试环境

1.操作系统Redhat7.6

2.CDP DC7.1.1

操作步骤

Fayson使用test用户进行验证,创建了一个root.test 的资源池,设置放置规则test 用户放置到root.test 池下进行验证,具体操作如下:

1、首先确保你集群中的YARN Queue Manager是正常工作的,然后点击群集>动态资源池,在Yarn 创建资源池创建root.test 资源池,root.test资源池配置这里比例为10%,可根据资源情况自行调整

096aedc38c160769b07c42698e59a892.png

2、设置队列放置规则

Fayson 这里只针对test 用户,设置将test 用户的队列放置到root.test 资源池下

52301f03c49f40b36132ea27f281d30c.png

然后执行pyspark 命令验证已经生效。

cabd005d553be6c10522ea2068cdaccb.png

3、进入beeline 命令或者在hue 中创建一个测试表,并插入一条数据验证

kinit testcreate table test (s1 string,s2 string);insert into test values ("test","abc");

然后查看执行结果和作业信息显示的池的default,用户是Hive 。在Hive SQL 中,并没有将作业正确的放置到用户的资源池队列

823742ad786117b4093fd7d4ea72f3a3.png
61f7fb606196f97366b462e5cc6f3861.png

那么如何才能让Hive 作业正确的运行到指定的资源池下呢?

首先确报已禁用模拟功能hive.server2.enable.doAs=false

然后具体步骤如下:

CM -> YARN -> Configuration -> ResourceManager Advanced Configuration Snippet (Safety Valve) for yarn-site.xml 中添加以下参数:

yarn.resourcemanager.application-tag-based-placement.enable=trueyarn.resourcemanager.application-tag-based-placement.username.whitelist=hive
93d6d7b68c2ed5cbc4c8ee6a820413c8.png

CM -> Hive_on_Tez -> Configuration -> Hive Service Advanced Configuration Snippet (Safety Valve) for hive-site.xml 中添加以下参数:

hive.server2.tez.initialize.default.sessions=false;hive.server2.tez.queue.access.check=true;hive.server2.tez.sessions.custom.queue.allowed=true;
21afff94a4f86fd9a2196ef6810bff2e.png

设置完上述参数后,保存并重启服务生效。

然后重新提交insert 语句执行

d26b7ea7bbf8d9cc07f4a4b259451de7.png

查看资源池队列放置是否准确

CM 界面:

ad6e946d0dc22fa17228130c7c5e7212.png
a66ae17080c2708d3a3d9c8dcd65cb02.png

而提交任务的用户显示依旧为Hive, 因为 Hive 禁用模拟之后, 所有作业实际都是通过Hive用户提交的. 真实提交的用户显示 YARN Application Tag的一部分. 可以在 YARN Web UI 上看到 "Application Tag" 列会显示userid=XXX 的信息, 是实际的提交用户。

也可以通过 CM -> YARN -> Application 页面的右边 Select Attributes按钮点开 Application Tag, 接着在搜索框可以输入 application_tags RLIKE '.*userid=用户名' ,这样 CM 就会显示所有"用户名"提交的 Hive作业了。

7112cdb8aa1022589beb4649df2158be.png

文档总结

在CDP7.1.1中启用 Ranger 之后(类似于 Sentry), 由于鉴权的需要, Hive 始终是用 hive 用户提交作业的。开启 Ranger 之后, 默认 Hive 提交的 Tez 作业以hive用户执行, 所以不会以实际的登录 Hive 的用户来指派队列,需要手动在YARN 中开启Application Tag 功能和Tez中开启队列检查参数来正确放置队列和获取作业执行的用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值