Impala启用并配置动态资源池
本文介绍如何使用动态资源池控制impala并发。
问题背景
客户需要使用动态资源池控制impala并发。
- 登录到集群的master1节点上,然后切换到omm用户下,在/home/omm目录下创建fair-scheduler.xml、llama-site.xml文件。
- 打开fair-scheduler.xml文件,添加如下配置。
<allocations> <queue name="root"> <aclSubmitApps> </aclSubmitApps> <queue name="default"> <maxResources>4096 mb, 0 vcores</maxResources><!--参数仅供参考--> <aclSubmitApps>*</aclSubmitApps> </queue> <queue name="development"> <maxResources>2048 mb, 0 vcores</maxResources><!--参数仅供参考--> <aclSubmitApps>admin</aclSubmitApps> </queue> <queue name="production"> <maxResources>7168 mb, 0 vcores</maxResources><!--参数仅供参考--> <aclSubmitApps>omm</aclSubmitApps> </queue> </queue> <queuePlacementPolicy> <rule name="specified" create="false"/> <rule name="default" /> </queuePlacementPolicy> </allocations>
- 打开llama-site.xml文件,添加如下配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property> <name>llama.am.throttling.maximum.placed.reservations.root.default</name> <value>1</value> </property> <property> <name>llama.am.throttling.maximum.queued.reservations.root.default</name> <value>2</value><!--参数仅供参考--> </property> <property> <name>impala.admission-control.pool-default-query-options.root.default</name> <value>mem_limit=128m,query_timeout_s=20,max_io_buffers=10</value> </property> <property> <name>impala.admission-control.pool-queue-timeout-ms.root.default</name> <value>30000</value><!--参数仅供参考--> </property> <property> <name>impala.admission-control.max-query-mem-limit.root.default</name> <value>3072000000</value><!--3GB--><!--参数仅供参考--> </property> <property> <name>impala.admission-control.min-query-mem-limit.root.default</name> <value>2048000000</value><!--2GB--> </property> <property> <name>impala.admission-control.clamp-mem-limit-query-option.root.default.regularPool</name> <value>true</value> </property> </configuration>
- 执行如下命令分别将fair-scheduler.xml、llama-site.xml同步到所有的impalad节点的安装目录的etc文件夹下 。
scp fair-scheduler.xml {impalad实例ip}:/opt/Bigdata/FusionInsight_Impala_***/***_Impalad/etc/
scp llama-site.xml {impalad实例ip}:/opt/Bigdata/FusionInsight_Impala_***/***_Impalad/etc/
- 登录到manager管理页面上,找到impala组件,然后在impalad实例中添加如下自定义配置项及值:
--fair_scheduler_allocation_path 值如:/opt/Bigdata/FusionInsight_Impala_***/***_Impalad/etc/fair-scheduler.xml
--llama_site_path 值如:/opt/Bigdata/FusionInsight_Impala_***/***_Impalad/etc/llama-site.xml
- 重启impalad实例。
- 登录到impala客户端所在的节点上,source环境变量,然后执行如下命令。
impala-shell -i {impalad实例ip:port} -Q request_pool=root.default (fair-scheduler.xml与llama-site.xml文件中配置的资源池)
执行SQL查询。
- 登录到Impalad WebUI上查看资源池使用情况,确认配置已生效。
https://{集群控制台地址}:9022/component/Impala/Impalad/95/