hadoop集群之间的文件拷贝——distcp

    之前部门迁移hadoop,涉及到hive表的重建,以及hdfs上文件的迁移,还有oozie任务的修改。

    hive重建表比较简单,首先show create table tablename;然后把建表语句拷贝下来即可,这里要注意的是,最好把stored as XXX语句也加上。一开始我没加,还出了错,因为两个hadoop集群的hive建表时的默认的存储格式不一致。

    hdfs的数据迁移,有几种方式可以选择:

    1、如果数据在关系型数据库中也存在一份,可以直接使用sqoop命令导入新集群。

    2、如果表不是很多,可以先从hdfs上把数据get到本地,随后再load到新集群的hive表中,或直接put进相应的hdfs路径。

    3、使用hadoop distcp命令,这个命令是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文

件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部

分文件的拷贝。 由于使用了Map/Reduce方法,这个工具在语义和执行上都会有特殊的地方。

   下面是一个使用的例子:

    hadoop distcp -Dmapred.job.queue.name=xxx  -m 90 -update -skipcrccheck hftp://XXXX:50070/user/hive/warehouse/xxx.db/xxx/ user/hive/warehouse/xxx.db/xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值