step1: 设置默认须要导出的hive数据库为defaultDatabasesql
在原集群中的任意节点上,新建“.hiverc”文件,加入以下内容:数据库
vi ~/.hiverc use defaultDatabase;
defaultDatabase可修改成须要迁移的其它名称
step2: 建立数据临时目录oop
hdfs dfs -mkdir /tmp/hive-export
step3: 生成数据导出脚本code
执行以下命令生成数据导出脚本:hadoop
hive -e "show tables" | awk '{printf "export table %s to @/tmp/hive-export/%s@;\n",$1,$1}' | sed "s/@/'/g" > export.sql
-- 这里是生成所有的表,若是是迁移几个表的话,那么直接能够本身写export.sql
-- 例如:export table rv_Cloud_Source to '/tmp/hive-export/rv_Cloud_Source';
step4: 手工导出数据到HDFSget
执行脚本导出数据io
hive -f export.sql
-- 这里能够在export.sql加上use database;
step5: 下载数据table
下载HDFS数据到本地,并传送到目标集群(targetDir为目标集群地址)的/tmp/hive-export目录:class
hdfs dfs -get /tmp/hive-export/ scp -r hive-export/ export.sql root@targetDir hdfs dfs -put hive-export/ /tmp/hive-export
step6: 生成数据导入脚本import
执行以下命令,复制导出脚本,并将脚本修改成导入脚本:
cp export.sql import.sql sed -i 's/export table/import table/g' import.sql sed -i 's/ to / from /g' import.sql
-- 这里是导入所有表,因此使用sed作了一下替换,若是只导入几个hive 表,那么这样便可:
-- use database; import table rv_Cloud_ADSDKSource from '/tmp/hive-export/rv_Cloud_ADSDKActiveUser';
step7: 导入数据
hive -f import.sql 主要转自:https://docs.ucloud.cn/analysis/uhadoop/migration 中的hive迁移