这篇文章将为大家详细讲解有关在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%,可根据资源情况自行调整
2、设置队列放置规则
Fayson 这里只针对test 用户,设置将test 用户的队列放置到root.test 资源池下
然后执行pyspark 命令验证已经生效。
3、进入beeline 命令或者在hue 中创建一个测试表,并插入一条数据验证
kinit test
create table test (s1 string,s2 string);
insert into test values ("test","abc");
然后查看执行结果和作业信息显示的池的default,用户是Hive 。在Hive SQL 中,并没有将作业正确的放置到用户的资源池队列
那么如何才能让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=true
yarn.resourcemanager.application-tag-based-placement.username.whitelist=hive
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;
设置完上述参数后,保存并重启服务生效。
然后重新提交insert 语句执行
查看资源池队列放置是否准确
CM 界面:
而提交任务的用户显示依旧为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作业了。
关于“在CDP7.1.1中如何配置用户的Hive SQL的资源池队列 ”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。