这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务.
另外根据metaservice的服务端和meta客户端是否在一台机器,再划分为本地和remote两种,我这里说的是remote类型,即meta客户端和服务端不在一台机器上
下面是服务端的配置文件
hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://1.1.1.3:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
下面是meta客户端的配置文件
也是编辑hive-site.xml注意这是在客户端机器上的
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://1.1.1.2:9083</value>
</property>
</configuration>
然后在服务端运行
hive --service metastore &
客户端执行 hive命令测试是否可以连接上远程metastore service
hive