HIVE-12679: Allow users to be able to specify an implementation of IMetaStoreClient via HiveConf #1402
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This change makes it possible for users to choose an implementation of IMetaStoreClient via HiveConf, i.e. hive-site.xml.
This patch is to retry merging the patch of HIVE-12679.
I talked with Austin, the original contributor for this issue, and he said it is okay to submit this patch again.
https://issues.apache.org/jira/browse/HIVE-12679
Why are the changes needed?
Currently, in Hive the choice is hard coded to be SessionHiveMetaStoreClient in org.apache.hadoop.hive.ql.metadata.Hive.
There is no other direct reference to SessionHiveMetaStoreClient other than the hard coded class name in Hive.java and the QL component operates only on the IMetaStoreClient interface so the change would be minimal and it would be quite similar to how an implementation of RawStore is specified and loaded in hive-metastore. One use case this change would serve would be one where a user wishes to use an implementation of this interface without the dependency on the Thrift server.
Does this PR introduce any user-facing change?
Yes. User will be able to specify own implementation of IMetaStoreClient. (e.g. IMetaStoreClient for AWS Glue Data Catalog).
How was this patch tested?
Unit test and integration test with Glue Data Catalog client.