两套 Hive 集群使用共同的元数据的方案
两套 Hive 集群使用共同的元数据的方案,需要 Hive 的版本一致。数据存储在单独的存储系统中。
方案1,使用之前集群的 metastore
现在集群1 正常工作。集群2修改 hive-site.xml 对应的 metastore 地址。如果服务器名不通,可以改为 ip,telnet 试下端口是否通。
然后重启 hive-server2。
<property>
<name>hive.metastore.uris</name>
<value>thrift://bmr-master-f64028c:9083</value>
</property>
方案2,直接连接同一个后台的 mysql
集群2的 hive-site.xml 里的如下配置和集群1一样,然后重启 hive-metastore。
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>xxx</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://xxx/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>xxx</value>
</property>
这样就可以连接同一个元数据库了。
注意事项
建立 hive 连接,默认连接 default 数据库。如果 default 数据库的地址只能在集群1访问,那么集群2会报错。可以把 default 数据库的地址改为公共地址。