附录 B - Impala 故障排除(翻译)

附录 B - Impala 故障排除

使用以下步骤诊断与调试 Impala 各个方面的问题:

通常来说,假如在 Impala 中查询执行失败,可以在 Hive 里再试着运行一下。

  • 假如查询在 Impala 和 Hive 里都运行失败,这一般是因为你的查询有问题或者你的环境有问题:
    • 检查 Language Reference 确认你的查询没问题
    • 检查 Impala 所有日志的内容,可能有对确定问题来源有帮助
  • 假如在 Impala 中失败而 Hive 中成功,通常是因为你 的 Impala 安装有问题

下表中列出了常见问题和可能的解决办法:

现象

解释

建议

表连接失败(Joins fail to complete)

可能是内存不足。当执行连接操作时,待连接的所有数据集合中的所有数据都被载入到内存中。数据集可能非常大,h

Add more memory to your system or join smaller data sets.

查询返回结果不正确(Queries return incorrect results)

Impala 元数据可能是过期的

按照 语言手册里的 REFRESH 语法来刷新 Hive 元数据

查询返回结果慢(Queries are slow to return results)

一些 impalad 实例可能没启动。使用浏览器登录到运行 Impala state store 的主机,访问地址是:http://hostname:port/metrics。

  注意:替换上面的主机名和端口号为你运行 Impala state store 服务的主机名以及 web 服务器端口。端口默认是25010。
页面上列出的 impalad 实例的个数应当与集群中安装的 impalad 实例的个数一致。每个数据节点上都应当安装 impalad 实例。

确认所有数据节点上都安装了 Impala。启动所有没运行的 impalad 实例

查询返回结果慢(Queries are slow to return results)

Impala 可能没有配置使用本地校验。本地校验使用机器特定的方法计算 HDFS 数据的校验和,非常快速(Native checksumming uses machine-specific instructions to compute checksums over HDFS data very quickly)。检查 Impala l日志,假如发现 "INFO util.NativeCodeLoader: Loaded the native-hadoop" 信息,则没有启用本地校验。

参照 Impala 安装后配置,确保 Impala 使用本地校验

查询返回结果慢(Queries are slow to return results)

Impala 可能没有配置使用数据位置跟踪(data locality tracking)。

参照 Impala 安装后配置,测试 Impala 是否启用数据位置跟踪,必要时启用

尝试完成 Impala 任务如执行 INSERT-SELECT 操作失败。Impala  日志中提示文件因为权限拒绝无法打开

这可能是权限问题造成的。例如,你可能以 hive 用户使用 Hive shell 创建了一个表。表创建之后,你可能尝试执行其他操作,例如向表中 INSERT-SELECT 数据。因为这个表使用 hive 用户创建的,而执行 INSERT-SELECT 操作的是另外一个用户,这一操作可能会因为权限问题而失败。

通常应确保 Impala 用户有足够的权限。在之前的例子里,确保 Impala 用户对 Hive 用户创建的表有足够的权限。

你可能感兴趣的:(附录 B - Impala 故障排除(翻译))