本文汇总了使用Impala时的常见问题。
Impala 3.4使用JDBC查询Impala 10秒提示会话超时,该怎么办?
您可以在Impala控制台通过命令设置FETCH_ROWS_TIMEOUT_MS参数为0,指定会话永不过期。命令示例如下所示。
jdbc:impala://impala-hive.ymt.io:21050/ymtcube;FETCH_ROWS_TIMEOUT_MS=0
Impala无法找到Hive新增的表,该怎么办?
在Impala之外操作元数据后,您可以在Impala控制台通过使用命令INVALIDATE METADATA,以刷新全库或者某个表的元数据。
Impala写入Hive表数据的时候,是否可以修改写入文件的owner?
使用Impala写入的表文件的owner默认为Impala,暂不支持修改。
如何调整Impalad可使用的节点内存总量?
您可以在EMR控制台Impala服务的配置页签,在搜索区域搜索mem_limit参数,默认值为80%,表示允许使用本机内存的80%来计算。您也可以配置为具体的内存大小,例如10G
。
如何限制单条查询语句消耗内存的大小?
可以使用SQL语句set MEM_LIMIT=Xg
限制,在该语句Session范围内生效。
如何提升非JOIN语句的查询效率?
对于单条没有JOIN的查询语句,您可以在Impala控制台通过命令设置mt_dop参数为n以提升并发度,其中n为每台机器的并发度。
Ranger开启Impala后,新扩容的Impala节点无法正常工作,该怎么办?
问题现象:EMR-5.6.0及之前的版本,在EMR控制台上Ranger开启Impala并扩容节点后,新扩容的Impala节点无法正常工作。
问题分析:开启Ranger会将Ranger相关配置文件复制到各个Impalad的配置中,使Impala支持Ranger。然而,在扩容时未触发此操作,导致新扩容的节点缺少Ranger相关配置,从而无法正常工作。
解决方法:您可以通过以下两种方式处理。
方式一:在EMR控制台中的Ranger服务的状态页签中,选择RangerAdmin操作列的
,重新执行enableImpala的操作。方式二:登录集群的emr-header-1节点,将
/etc/ecm/impala-conf
目录下的ranger-hive-audit.xml
、ranger-hive-security.xml
、ranger-policymgr-ssl.xml
、ranger-security.xml
四个文件复制到新扩容节点的/etc/ecm/impala-conf
目录下。