使用如下步骤诊断与调试 Impala 各个方面的问题: html
一般来讲,假如在 Impala 中查询执行失败,能够在 Hive 里再试着运行一下。 web
下表中列出了常见问题和可能的解决办法: sql
现象 shell |
解释 浏览器 |
建议 服务器 |
---|---|---|
表链接失败(Joins fail to complete) oop |
多是内存不足。当执行链接操做时,待链接的全部数据集合中的全部数据都被载入到内存中。数据集可能很是大,h 测试 |
Add more memory to your system or join smaller data sets. ui |
查询返回结果不正确(Queries return incorrect results) spa |
Impala 元数据多是过时的 |
按照 语言手册里的 REFRESH 语法来刷新 Hive 元数据 |
查询返回结果慢(Queries are slow to return results) |
一些 impalad 实例可能没启动。使用浏览器登陆到运行 Impala state store 的主机,访问地址是:http://hostname:port/metrics。 ![]() |
确认全部数据节点上都安装了 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 用户建立的表有足够的权限。 |