[ 
https://issues.apache.org/jira/browse/HIVE-12679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15151354#comment-15151354
 ] 

Austin Lee commented on HIVE-12679:
-----------------------------------

Thanks for your suggestion on the approach.  Instead of having 
SessionHiveMetaStoreClient directly extend HiveMetaStoreClient via inheritance, 
if I understand you correctly, we can accomplish what I am proposing via 
composition, i.e., by creating a new member of type IMetaStoreClient in 
SessionHiveMetaStoreClient and use HiveConf to determine its concrete 
implementation at runtime?  I was thinking of putting this logic in 
SessionHiveMetaStoreClient, but looking at the latest code in 2.1-snapshot, 
your approach might make more sense.

As for the use case that I have in mind, I am really after more flexibility, 
e.g. not having dependency on Thrift, not having to run in embedded mode to 
eliminate dependency on Thrift, etc.   

> Allow users to be able to specify an implementation of IMetaStoreClient via 
> HiveConf
> ------------------------------------------------------------------------------------
>
>                 Key: HIVE-12679
>                 URL: https://issues.apache.org/jira/browse/HIVE-12679
>             Project: Hive
>          Issue Type: Improvement
>          Components: Configuration, Metastore, Query Planning
>            Reporter: Austin Lee
>            Assignee: Austin Lee
>            Priority: Minor
>              Labels: metastore
>             Fix For: 1.2.1
>
>
> Hi,
> I would like to propose a change that would make it possible for users to 
> choose an implementation of IMetaStoreClient via HiveConf, i.e. 
> hive-site.xml.  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.
>   
> Thank you,
> Austin



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to