为啥 impala 不显示 Hive 创建的所有表

Posted

技术标签:

【中文标题】为啥 impala 不显示 Hive 创建的所有表【英文标题】:Why impala not showing all tables created by Hive为什么 impala 不显示 Hive 创建的所有表 【发布时间】:2018-07-22 22:03:22 【问题描述】:

我已经使用 sqoop 将所有表导入到 Hive 数据库“sqoop_import”中,能够看到成功导入的所有表,如下所示:-

hive> use sqoop_import;
OK
Time taken: 0.026 seconds
hive> show tables;
OK
categories
customers
departments
order_items
orders
products
Time taken: 0.025 seconds, Fetched: 6 row(s)
hive> 

但是当我使用相同的用户从 impala-shell 或 Hue 尝试相同的操作时,它会显示不同的结果,如下所示:-

[quickstart.cloudera:21000] > use sqoop_import;
Query: use sqoop_import
[quickstart.cloudera:21000] > show tables;
Query: show tables
+--------------+
| name         |
+--------------+
| customers    |
| customers_nk |
+--------------+
Fetched 2 row(s) in 0.01s
[quickstart.cloudera:21000] > 

我做错了什么?

【问题讨论】:

Impala can't access all hive table的可能重复 【参考方案1】:

当您将带有sqoop 表导入hive 时,为了通过Impala-Shell 看到它,您应该对特定表INVALIDATE METADATA。因此,从 Impala-Shell 运行以下命令:impala-shell -d DB_NAME -q "INVALIDATE METADATA table_name";

但如果您通过sqoop新数据文件附加到现有表中,则需要执行 REFRESH。因此,从 Impala-Shell 运行以下命令: impala-shell -d DB_NAME -q "REFRESH table_name";.

【讨论】:

以上是关于为啥 impala 不显示 Hive 创建的所有表的主要内容,如果未能解决你的问题,请参考以下文章

Hive中的Timestamp类型日期与Impala中显示不一致分析

Impala 创建外部表,由 Hive 存储

为啥 Impala 不能在 hbase 表上工作?

如何对 hdfs 中的数据进行加密,然后创建 hive 或 impala 表进行查询?

为啥 Impala 表定义不复制?

Apache Impala:如何创建临时内存表?