【Hadoop-Distcp】工具简介及参数说明
- 1)概述
- 2)适合的场景及其有点
- 3)参数说明
1)概述
Distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用 Map/Reduce 实现文件分发,错误处理和恢复,以及报告生成。
Distcp 把文件和目录的列表作为 map 任务的输入,每个任务会完成源列表中部分文件的拷贝。
官网地址:http://hadoop.apache.org/docs/r2.7.0/hadoop-distcp/DistCp.html
2)适合的场景及其有点
1、适合场景:
数据异地灾,机房下线,数据迁移等。
2、优点:
① 可以限制带宽
,使用 bandwidth
参数对 distcp 的每个 map 任务限流,同时控制 map 并发数量即可控制整个拷贝任务的带宽,防止拷贝任务将带宽打满,影响其它业务。
② 支持 overwrite
(覆盖写,无条件覆盖目标文件,即使它们存在),update
(增量写,如果 dest 文件的名称和大小与 src 文件不同,则覆盖;若目的文件大小和名称与源文件相同则跳过),delete
(删除写,删除 dest 中存在的文件,但在 src 中不存在)等多种源和目的校验的拷贝方式,大量数据的拷贝必然要做到数据拷贝过程中的校验,来保证源和目的数据的一致性。文章来源:https://uudwc.com/A/kvByv
3)参数说明
此参数为Hadoop2.x版本文章来源地址https://uudwc.com/A/kvByv
-
-append
:重用目标文件中的现有数据,并在可能的情况下添加新数据,新增进去而不是覆盖它 -
-async
:是否应该阻塞 distcp 执行 -
-atomic
:提交所有更改或不提交更改 -
-bandwidth <arg>
:以 MB/second 为单位指定每个 map 的带宽 -
-delete
:删除目标文件中存在的文件,但在源文件中不存在,走 HDFS 垃圾回收站 -
-diff <arg>
:使用 snapshot diff 报告来标识源和目标之间的差异 -
-f <arg>
:需要复制的文件列表 -
-filelimit <arg>
:(已弃用!)限制复制到 <=n 的文件数 -
-filters <arg>
:从复制的文件列表中排除 -
-i
:忽略复制过程中的失败 -
-log <arg>
:HDFS 上的 distcp 执行日志文件夹保存 -
-m <arg>
:限制同步启动的 map 数,默认每个文件对应一个 map,每台机器最多启动20个 map -
-mapredSslConf <arg>
:配置ssl配置文件 -
-numListstatusThreads <arg>
:用于构建文件清单的线程数(最多40个),当文件目录结构复杂时应该适当增大该值 -
-overwrite
:选择无条件覆盖目标文件,即使它们存在。 -
-p <arg>
:保留源文件状态(rbugpcaxt)(复制,块大小,用户,组,权限,校验和类型,ACL,XATTR,时间戳) -
-sizelimit <arg>
:(已弃用!)限制复制到 <=n 的文件数字节 -
-skipcrccheck
:是否跳过源和目标路径之间的 CRC 检查。 -
-strategy <arg>
:选择复制策略,默认值 uniformsize,每个 map 复制的文件总大小均衡;可以设置为 dynamic,使更快的 map 复制更多的文件,以提高性能 -
-tmp
: 要用于原子的中间工作路径承诺 -
-update
:如果目标文件的名称和大小与源文件不同,则覆盖;如果目标文件大小和名称与源文件相同则跳过