记录下工作中由于需要复制生产环境到测试环境以供测试使用做的一次数据库的迁移,方法比较繁琐,有待改进;
基本思路:将生产环境的表导出到hdfs,将hdfs的数据get到本地,scp到测试环境的本地,put到测试环境的hdfs,再进行导入;
- hive表到处到hdfs:
export table table_name to '/home/path';
这里表名最好将库名也加上,后面的path使用hdfs的路径
-
get到本地:
hadoop fs -get /home/get/table_name /localpath
到本地目录,建议数据量不要太大,可以进行一个部分数据转移即可毕竟测试
-
scp到测试环境
scp /local_path/table_name test-cdh:/test_path
这里可能需要好长时间,受网络带宽限制
-
put到测试环境的hdfs
hadoop fs -put /test_path/table_name /test_hdfs_path
一下就是测试环境的逆向操作了
-
import表数据到hive
import table table_name from '/test_hdfs_path/table_name';
搞定