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 ...
Exécutez la requête 'invalidate metadata' dans Impala et vos tables s'afficheront.
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.
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: