【Hadoop-Distcp】工具简介及参数说明

【Hadoop-Distcp】工具简介及参数说明

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 中不存在)等多种源和目的校验的拷贝方式,大量数据的拷贝必然要做到数据拷贝过程中的校验,来保证源和目的数据的一致性。

3)参数说明

此参数为Hadoop2.x版本

  • -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:如果目标文件的名称和大小与源文件不同,则覆盖;如果目标文件大小和名称与源文件相同则跳过

猜你喜欢

转载自blog.csdn.net/weixin_53543905/article/details/131418380