distcp集群数据迁移

 

近期在做HDP集群 数据迁移到CDH集群中。

使用了distcp指令做数据迁移.

##distcp 指令:源->目标   (指令在目标端运行)

指令:hadoop distcp 源 目标 
##1、运行指令的用户,得有目标仓库的写权限
##2、源端:必须是绝对路径(hdfs路径到表名路径)
##3、目标端:只需要到库(需要到表,否则将多一层路径)
##4、目标端:表需要单独创建.可运行指令前,或者运行指令后创建.
##参数 -update 将数据文件之间拷贝到 目标绝对路径下,不创建表名(当然这里是说的hdfs目录哈).即:目标是什么目录,就直接考这个目录下.无其它操作.
##参数 -overwrite 将先创建表名,之后将数据文件拷贝到表名的路径下(这里表名即hdfs的一个路径名称)

##overwrite如下方式同步.
##目标端运行指令.
hadoop distcp -overwrite hdfs://ip:8020/apps/hive/warehouse/dev.db/dim_date hdfs://nameservice1/user/hive/warehouse/test.db/
##结果目录
hdfs://nameservice1/user/hive/warehouse/test.db/dim_date

##update如下方式同步.
##目标端运行指令.
hadoop distcp -update hdfs://ip:8020/apps/hive/warehouse/dev.db/dim_date hdfs://nameservice1/user/hive/warehouse/test.db/
##结果目录(直接将数据文件拷贝到仓库下了。如果是多个表数据,拷贝到一个表,可以使用此参数)
hdfs://nameservice1/user/hive/warehouse/test.db/000000_0

灵活运用参数,对迁移还是有不少帮助的.

 

你可能感兴趣的:(学习博客)