web-dev-qa-db-fra.com

Impala ne peut pas accéder à toutes les tables Hive

J'essaie d'interroger les données hbase via Hive (j'utilise cloudera). J'ai fait une fiew table externe Hive pointant vers hbase mais le fait est que l'impala de Cloudera n'a pas accès à toutes ces tables. Toutes les tables externes de Hive apparaissent dans le gestionnaire de métastore, mais lorsque je fais un simple "show tables" dans Impala, je vois qu'il manque 3 tables. Est-ce un problème de privilèges? Je vois que dans le gestionnaire de metastore que les 3 tables manquantes sont lisibles par tout le monde alors ...

20
Nosk

Exécutez la requête 'invalidate metadata' dans Impala et vos tables s'afficheront.

46
Romain

Sous est le? explication de l'aide en ligne: Il manque des tables? Pour mettre à jour la liste des tables/métadonnées vues par Impala, exécutez l'une des requêtes suivantes:

"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.
1
Steve Rokette

Bien que la commande INVALIDATE METADATA dans impala fonctionne sa documentation est coûteuse , dans les versions récentes, il est désormais possible d'invalider les métadonnées d'une seule table, ce qui aura moins d'impact:

INVALIDATE METADATA mynewtable

Alternativement, si vous utilisez HUE, une option moins chère est également disponible. Ce qui peut être pratique si vous avez ajouté plusieurs nouvelles tables:

 enter image description here

0
Dennis Jaheruddin