大数据平台CDH集群数据迁移的常见问题与解决方案
如何进行数据迁移一般而言,数据迁移常用于集群之间,但集群之间往往会出现cdh版本不同,那么如何查询集群的cdh版本呢?可以使用命令 hadoop version 查看不同版本的cdh的数据迁移方式也不一样,下面来介绍下相同版本和不同版本cdh 的数据迁移方式:注意: ip1–源集群,ip2–目标集群一、相同版本使用命令hadoop distcp hdfs://ip1:host/s...
·
如何进行数据迁移
一般而言,数据迁移常用于集群之间,但集群之间往往会出现cdh版本不同,那么如何查询集群的cdh版本呢?
可以使用命令 hadoop version
查看
不同版本的cdh的数据迁移方式也不一样,下面来介绍下相同版本和不同版本cdh 的数据迁移方式:
注意: ip1–源集群,ip2–目标集群
一、相同版本
- 使用命令
hadoop distcp hdfs://ip1:host/source hdfs://ip2:host/source
二、不同版本
- 使用hftp协议
hadoop distcp hftp://ip1:host/source hdfs://ip2:host/source
- 使用参数-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)建表未指定格式textfile
或parquet
(2)操作工具未设置字符编码,如我用Xshell,需要设置Xshell的字符编码utf-8
- 版本不一致,会报错
Check-Sum
,只要有这个,就肯定是版本不一致,怎么解决,请参考上面 - 文件传输慢:一般数据量小的文件传输,有可能是文件数/目录数过多,只要控制好集群的磁盘就可以了。使用清除缓存命令
sync
和echo 3 > /proc/sys/vm/drop_cacahes
- 快速复制表结构:复制好之后,保存到一个文件中,使用vim编辑器,末行模式下:
:1,$s/|/ /g
快速去除符号|
更多推荐
已为社区贡献1条内容
所有评论(0)