常见问题

本文汇总了使用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操作列的image.png > enableImpala,重新执行enableImpala的操作。

    • 方式二:登录集群的emr-header-1节点,将/etc/ecm/impala-conf目录下的ranger-hive-audit.xmlranger-hive-security.xmlranger-policymgr-ssl.xmlranger-security.xml四个文件复制到新扩容节点的/etc/ecm/impala-conf目录下。