当前,需要将集群的数据从HDP迁移到CDP的集群当中,因此要将HDP中的表在CDP上构建,并将HDP中的数据复制到CDP中,以下是具体的处理逻辑;
版本:
HDP中hive版本,1.2.1
CDP中hive版本,3.1.3
(1)表复制,我们采用impala,在impala上执行如下命令:
show create table xxxx;
采用这种方式,我们可以获取建表的语句,进行修改即可在CDP集群上进行建表;
(2)数据复制,数据复制采用如下的命令:
hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true -m 2 hdfs://ip:8020/apps/源表的路径/* /目标表的路径/
注:源表路径和目标表路径需要自己确定;另外,新的CDP的版本是使用采用kerberos进行认证的,所有需要在数据复制命令中添加ipc.client.fallback-to-simple-auth-allowed=true
(3)在数据复制到HDFS上的指定目录下之后,需要在hive中更新元数据信息,具体指令如下:
msck repair table tablename;
注:在执行数据复制的命令时需要选择有权限进行操作hdfs指定目的路径的用户,这边建议使用hive用户进行操作;