1.导出源hive集群的元数据
导出源hive集群的元数据,使用相应的关系型数据库的导出命令即可,比如pg:
pg_dump -h [hostname] -U [username] hive >/tmp/hive.sql
2.将导出的元数据导入目标集群
将导出的元数据在目标hive集群上导入,使用相应的关系型数据库的导入命令即可,比如pg:
psql -f /tmp/hive.sql -d hive
注意:需要使用hive用户导入数据,否则导入数据后,表的所属用户不是hive,会导致元数据查询失败。
3.升级hive元数据
psql -U hive -f $HIVE_HOME/scripts/metastore/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql -d hive
注意:
我们找到hive安装目录下的scripts/metastore/upgrade/postgres目录,下面有很多类似upgrade-2.3.0-to-3.0.0.postgres.sql这样的sql文件,这些sql文件就是对应hive版本的元数据升级的sql文件。
需要注意的是,假如我们是从hive2.1.0版本升级到hive3.1.0版本,我们需要依次执行如下升级upgrade文件,才能成功升级元数据表和元数据:
psql -U hive -f $HIVE_HOME/scripts/metastore/upgrade/postgres/upgrade-2.1.0-to-2.2.0.postgres.sql -d hive
psql -U hive -f $HIVE_HOME/scripts/metastore/upgrade/postgres/upgrade-2.2.0-to-2.3.0.postgres.sql -d hive
psql -U hive -f $HIVE_HOME/scripts/metastore/upgrade/postgres/upgrade-2.3.0-to-3.0.0.postgres.sql -d hive
psql -U hive -f $HIVE_HOME/scripts/metastore/upgrade/postgres/upgrade-3.0.0-to-3.1.0.postgres.sql -d hive
|