版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/5e0b1765163d
【迁移背景】
本次需要将老集群的hive数据(共30多张表)迁移至新集群中。
老集群版本为CDH5.13,未启用kerberos;
新集群版本为CDH5.14,启用了kerberos。
由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。
第一步,老集群数据导致,以老集群test库下的两张表为例
在老集群hive中执行导出命令,将hive数据导出到hdfs一个目录下,export table tab1 to '/tmp/hive-export/test/tab1'
以上默认是将test.tab1和test.tab2两张表的所有数据都导出到hdfs
查看hdfs上的文件
2、在新的集群上执行distcp(一定要在新集群执行,因为开启了kerberos)
[root@spbdhbdh55 ~]# hadoop distcp-overwrite hdfs19.126.68.318020tmphive-export hdfs19.121.1.268020tmphive-export
拷贝结束,查看新集群hdfs上已有文件生成:
登陆hive查看此时还没有test库:
新建test库:
将数据恢复到hive中:
import table test.tab1 from 'tmp/hive-export/test/tab1';
查看表:
执行一个查询:
网友评论