Hi Huang,

According to the picture you want to start 2 HiveServer2 instances both with 
embedded metastore, where the metastore db is stored in the same RDBMS in a 
different database.

This is certainly possible.
You have to set the database options according to this:
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-RemoteMetastoreDatabase
 
<https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-RemoteMetastoreDatabase>

You have to set the metastore options according to this:
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-Local/EmbeddedMetastoreServer
 
<https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-Local/EmbeddedMetastoreServer>


Hope this helps,
Peter


> On Oct 26, 2016, at 4:48 AM, Huang Meilong <ims...@outlook.com> wrote:
> 
> Look at this local metastore architecture:
> 
> <pastedImage.png>
> 
> If I set different database name in javax.jdo.option.ConnectionURL, say,
> "jdbc:mysql://xxxxx/hivemeta_1?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8"
>  and 
> "jdbc:mysql://xxxxx/hivemeta_2?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8",
>  will the to metastore services work fine?
> 
> In short, I want to use the same RDBMS database for the two hive metastore 
> services, and the meta data is isolated form each other. How can I achieve 
> that?
> 
> 
> 
> 发件人: Peter Vary <pv...@cloudera.com>
> 发送时间: 2016年10月26日 0:49
> 收件人: user@hive.apache.org
> 主题: Re: Can I specify database name in hive metastore service?
>  
> Hi Huang,
> Hive metastore is a component of the "Hive database". See: 
> https://cwiki.apache.org/confluence/display/Hive/Design 
> <https://cwiki.apache.org/confluence/display/Hive/Design>
> The metastore uses traditional RDBMS to store "the structure information of 
> the various tables and partitions in the warehouse". The 
> javax.jdo.option.ConnectionURL and the javax.jdo.option.ConnectionDriverName 
> configuration options are used to access this RDBMS database. The 
> hive.metastore.uris is the endpoint where the metastore will communicate with 
> the other Hive components, like the HiveServer2.
> So you can change the database name in the connectionUrl, which will change 
> only the database name where the metadata is stored in the relational 
> database and you can not add a database name to the thrift uri (metastore 
> uri) since HiveServer2 will use the same uri to access metadata regardless of 
> which Hive database is used by the client.
> I hope this helps, 
> Peter
> 
> 2016. okt. 25. 17:32 ezt írta ("Huang Meilong" <ims...@outlook.com 
> <mailto:ims...@outlook.com>>):
> Hi,
> 
> To use hive metastore service, I must set `javax.jdo.option.ConnectionURL`, 
> `javax.jdo.option.ConnectionDriverName` and `hive.metastore.uris` in 
> hive-site.xml, like this:
> 
>   <property>
>     <name>javax.jdo.option.ConnectionURL</name>
>     
> <value>jdbc:mysql://xxxxx/hivemeta?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
>   </property>
>   <property>
>     <name>javax.jdo.option.ConnectionDriverName</name>
>     <value>com.mysql.jdbc.Driver</value>
>   </property>
> <property>
>     <name>hive.metastore.uris</name>
>     <value>thrift://xxx:9083</value>
>   </property>
> 
> 
> I'm confused that can I change the database name (usually it's `hivemeta`) 
> for other names?
> 
> If I changed the database name from `hivemeta` to `my_hivemeta`, can hive 
> metastore work? We can not specify database name in `hive.metastore.uris`, we 
> can only specify hostname and port of metastore service.

Reply via email to