大数据平台CDH集群数据迁移的常见问题与解决方案

如何进行数据迁移

一般而言,数据迁移常用于集群之间,但集群之间往往会出现cdh版本不同,那么如何查询集群的cdh版本呢?
可以使用命令 hadoop version 查看

不同版本的cdh的数据迁移方式也不一样,下面来介绍下相同版本和不同版本cdh 的数据迁移方式:
注意: ip1–源集群,ip2–目标集群
一、相同版本

  1. 使用命令
hadoop distcp hdfs://ip1:host/source hdfs://ip2:host/source

二、不同版本

  1. 使用hftp协议
hadoop distcp hftp://ip1:host/source hdfs://ip2:host/source
  1. 使用参数-skipcrccheck -update
hadoop distcp -skipcrccheck -update hdfs://ip1:host/source hdfs://ip2:host/source

数据迁移前,应查看文件是否存在,否则会报file don’t exist错误。

hadoop fs -ls /source

记得数据迁移后,也应该查看文件是否迁移完成。

impala建表

上面只是进行数据文件的迁移,但是要显示数据,需要创建hive表,一般而言与原表格式一致,记得设置hive表格式,否则会出现数据格式乱码问题,建表格式如下:

create table if not exists user(
id string comment 'openId', 
phone string comment '电话', 
user_name string comment '用户名', 
sex string comment '性别,直接存男女', 
certificate_no string comment '身份证',  
create_time string 
)
row format delimited fields terminated by '\t' NULL DEFINED AS '' stored as textfile;

常见错误与解决方案

  1. 数据乱码问题
    乱码问题只有两种情况:
    (1)建表未指定格式textfileparquet
    (2)操作工具未设置字符编码,如我用Xshell,需要设置Xshell的字符编码utf-8
  2. 版本不一致,会报错Check-Sum,只要有这个,就肯定是版本不一致,怎么解决,请参考上面
  3. 文件传输慢:一般数据量小的文件传输,有可能是文件数/目录数过多,只要控制好集群的磁盘就可以了。使用清除缓存命令syncecho 3 > /proc/sys/vm/drop_cacahes
  4. 快速复制表结构:复制好之后,保存到一个文件中,使用vim编辑器,末行模式下: :1,$s/|/ /g快速去除符号|
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值