Impala无法访问所有Hive表。

21

我尝试通过Hive(我使用的是Cloudera)查询HBase数据。我创建了一些指向HBase的外部Hive表,但问题在于Cloudera的Impala无法访问所有这些表。所有Hive外部表都出现在Metastore Manager中,但是当我在Impala中执行简单的“show tables”时,我发现3个表不见了。 这是权限问题吗?我看到在Metastore Manager中缺失的这3个表可供每个人阅读,所以...


尽管被接受的答案仍然有效,但我已经添加了一个更新的答案,基于更近期的版本。 - Dennis Jaheruddin
3个回答

51

在 Impala 中运行查询“invalidate metadata”,您的表将显示出来。


3
你又一次说对了。有没有自动化“使元数据无效”的配置方法?不管怎样,非常感谢你给我期待已久的答案 :) - Nosk
如果您通过 Impala 添加表,则无需使元数据无效化。 - skeltoac
嘿,我们如何在Hive或shell脚本中自动化这个过程,以便我们可以在Oozie/Hue中使用。谢谢。 - ChikuMiku
这篇文章https://hadoopjournal.wordpress.com/2015/12/06/auto-execution-of-validate-metadata-in-impala/和https://community.cloudera.com/t5/tkb/articleprintpage/tkb-id/Impala@tkb/article-id/3对我很有帮助,所以我想把它们作为评论分享给其他人。是的,它解决了我的问题。 - ChikuMiku
无效的元数据很昂贵,有没有其他方法可以获得相同的结果? - nomadSK25

3
< p >尽管Impala中的< code >INVALIDATE METADATA命令可以工作,但据文档描述,它是昂贵的。但在最近的版本中,现在可以使一个表的元数据失效,这将产生较小的影响:

INVALIDATE METADATA mynewtable

如果您使用HUE,则还有一种更便宜的选择。这可能很方便,特别是当您添加了多个新表格时:

enter image description here


1
以下是在线帮助说明: 缺少一些表格?为了更新Impala所看到的表格/元数据列表,请执行以下查询之一:
"invalidate metadata" invalidates the entire catalog metadata. All table metadata will be reloaded on the next access.
"invalidate metadata <table>" invalidates the metadata, load on the next access
"refresh <table>" refreshes the metadata immediately. It is a faster, incremental refresh.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接