I have a partitioned table in hive and I know that if I want to use this table in impala, i have to call "invalidate metadata tablename" command to retrieve tables metadata to catalog servers.
Catalog Server doesnt persist metadata in disk. It retrieves the metadata from HiveMetaStore and stores it in memory. So everytime you restart catalog service the metadata that catalog holds gets cleaned
Suppose if you want to get the changes made on a specific table in hive, you can do that using below command
INVALIDATE METADATA [[db_name.]table_name]
Invalidate metadata db.table_name will reset the metadata related to the table in impala
@venkatsambath already answered to your question.
One thing I'd like to add is that please run simple `SELECT` query for the table you want to reload metadata after running `INAVLIDATE META`. By doing that, you can trigger loading metadata in Impala.
When we restart impala we do not want to see anything from "show tables" in impala. But we see all the tables. How can we clear all meta info in impala without deleting them in hive?
Assume we added impala service and started impala, in this state when we execute "show tables" from impala shell we see no tables. As soon as we execute "invalidate metadata" and then "show tables" we see all tables in hive metastore. I know impala does not store any metadata info on disk, so I assume when we restart impala we should return to empty "show tables" output, but this is not the case.
What I understand from your post is, this is not possible right?
But whats the point to not showing tables?
Are you truing to hide tables before users? Then you can do thaht by grants in Sentry.