产品动态
产品公告
安全公告
mysqldump -hX.X.X.X -uroot -pXXXX --single-transaction --set-gtid-purged=OFF hivemetastore > hivemetastore-src.sql# 如果 mysql 数据没有开启 GTID,请删除命令行中的 --set-gtid-purged=OFF# X.X.X.X为数据库服务器地址# XXXX为数据库密码# 如果数据库用户不是 root,请用正确的用户名# hivemetastore 是 Hive 元数据库名
hive-site.xml 中的 hive.metastore.warehouse.dir 配置项指定。如果目标集群 Hive 表在 HDFS 的存储路径需要与源集群 Hive 表路径一致,可以参考以下示例对配置文件进行修改。例如,源集群 hive-site.xml 中 hive.metastore.warehouse.dir 为下面的值。<property><name>hive.metastore.warehouse.dir</name><value>/apps/hive/warehouse</value></property>
hive-site.xml 中 hive.metastore.warehouse.dir 为下面的值。<property><name>hive.metastore.warehouse.dir</name><value>/usr/hive/warehouse</value></property>
hive-site.xml 中的 hive.metastore.warehouse.dir,即为:<property><name>hive.metastore.warehouse.dir</name><value>/apps/hive/warehouse</value></property>
SELECT DB_LOCATION_URI from DBS;SELECT LOCATION from SDS;
mysql> SELECT LOCATION from SDS;+--------------------------------------------------+| LOCATION |+--------------------------------------------------+| hdfs://HDFS2648/usr/hive/warehouse/hitest.db/t1 || hdfs://HDFS2648/usr/hive/warehouse/wyp |+--------------------------------------------------+mysql> SELECT DB_LOCATION_URI from DBS;+-----------------------------------------------+| DB_LOCATION_URI |+-----------------------------------------------+| hdfs://HDFS2648/usr/hive/warehouse || hdfs://HDFS2648/usr/hive/warehouse/hitest.db |+-----------------------------------------------+
hdfs://HDFS2648 是 HDFS 默认文件系统名,由 core-site.xml 中的 fs.defaultFS 指定。<property><name>fs.defaultFS</name><value>hdfs://HDFS2648</value></property>
/usr/hive/warehouse 为 Hive 表在 HDFS 中的默认存储路径,也是 hive-site.xml 中 hive.metastore.warehouse.dir 指定的值。所以我们需要修改源 hive 元数据 sql 文件中的 SDS.LOCATION 和 DBS.DB_LOCATION_URI 两个字段。确保被导入的 Hive 元数据库中的这两个字段使用的是正确的路径。可使用如下 sed 命令批量修改 sql 文件。替换ip:sed -i 's/oldcluster-ip:4007/newcluster-ip:4007/g' hivemetastore-src.sql替换defaultFS:sed -i 's/old-defaultFS/new-defaultFS/g' hivemetastore-src.sql
mysqldump -hX.X.X.X -uroot -pXXXX --single-transaction --set-gtid-purged=OFF hivemetastore > hivemetastore-target.sql# 如果 mysql 数据没有开启 GTID,请删除命令行中的 --set-gtid-purged=OFF# X.X.X.X为数据库服务器地址# XXXX为数据库密码# 如果数据库用户不是 root,请用正确的用户名# hivemetastor 是 Hive 元数据库名
mysql> drop database hivemetastore;mysql> create database hivemetastore;
mysql -hX.X.X.X -uroot -pXXXX hivemetastore < hivemetastore-src.sql# X.X.X.X为数据库服务器地址# XXXX为数据库密码# 如果数据库用户不是 root,请用正确的用户名# hivemetastor 是 Hive 元数据库名
hive --service version
/usr/local/service/hive/scripts/metastore/upgrade/mysql/ 目录下。
hive 不支持跨版本升级,例如 hive 从1.2升级到2.3.0需要依次执行:upgrade-1.2.0-to-2.0.0.mysql.sql -> upgrade-2.0.0-to-2.1.0.mysql.sql -> upgrade-2.1.0-to-2.2.0.mysql.sql -> upgrade-2.2.0-to-2.3.0.mysql.sql
mysql> source upgrade-2.3.0-to-3.0.0.mysql.sql;mysql> source upgrade-3.0.0-to-3.1.0.mysql.sql;
phoenix.zookeeper.quorum 配置。mysql> SELECT PARAM_VALUE from TABLE_PARAMS where PARAM_KEY = 'phoenix.zookeeper.quorum';+--------------------------------------------------+| PARAM_VALUE |+--------------------------------------------------+| 172.17.64.57,172.17.64.78,172.17.64.54 |+--------------------------------------------------+
hbase.zookeeper.quorum 指定的值。<property><name>hbase.zookeeper.quorum</name><value>172.17.64.98:2181,172.17.64.112:2181,172.17.64.223:2181</value></property>
mysql> UPDATE TABLE_PARAMS set PARAM_VALUE = '172.17.64.98,172.17.64.112,172.17.64.223' where PARAM_KEY = 'phoenix.zookeeper.quorum';
alter table metastore_db_properties rename to METASTORE_DB_PROPERTIES;
文档反馈