HDFS辅助工具-跨集群复制数据工具distcp
概述
- DistCp是Hadoop中的一种工具,在hadoop-tools工程下,作为独立子工程存在。
- 定位用于数据迁移,定期在集群之间和集群内部备份数据
- 在备份过程中,每次运行DistCP都称为一个备份周期。尽管性能相对较慢,但它的普及程度越来越高
- DistCp底层使用MapReduce 在群集之间或并行在同一群集内复制文件。执行复制的MapReduce只有mapper阶段
命令
$ hadoop distcp
usage: distcp OPTIONS [source_path...] <target_path>
-append //拷贝文件时支持对现有文件进行追加写操作
-async //异步执行distcp拷贝任务
-bandwidth <arg> //对每个Map任务的带宽限速
-delete //删除相对于源端,目标端多出来的文件
-diff <arg> //通过快照diff信息进行数据的同步
-overwrite //以覆盖的方式进行拷贝,如果目标端文件已经存在,则直接覆盖
-p <arg> //拷贝数据时,扩展属性信息的保留,包括权限信息,块大小信息等等
-skipcrccheck //拷贝数据时是否跳过cheacksum的校验
-update //拷贝数据时,只拷贝相对于源端 ,目标端不存在的文件数据
- 其中source_path、target_path 需要带上地址前缀以区分不同的集群
hadoop distcp hdfs://nnl:8020/foo/a hdfs://nn2:8020/bar/foo
- 上面的命令表示从nnl集群拷贝/foo/a 路径下的数据到nn2集群的/bar/foo 路径下。