为啥 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中显示不一致分析