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

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

3)参数说明

此参数为Hadoop2.x版本

  • -append:重用目标文件中的现有数据,并在可能的情况下添加新数据,新增进去而不是覆盖它。
  • -async:是否应该阻塞 distcp 执行。
  • -atomic:提交所有更改或不提交更改。
  • -bandwidth :以 MB/second 为单位指定每个 map 的带宽。
  • -delete:删除目标文件中存在的文件,但在源文件中不存在,走 HDFS 垃圾回收站。
  • -diff :使用 snapshot diff 报告来标识源和目标之间的差异。
  • -f :需要复制的文件列表。
  • -filelimit :(已弃用!)限制复制到 <=n 的文件数。
  • -filters :从复制的文件列表中排除。
  • -i:忽略复制过程中的失败。
  • -log :HDFS 上的 distcp 执行日志文件夹保存。
  • -m :限制同步启动的 map 数,默认每个文件对应一个 map,每台机器最多启动20个 map。
  • -mapredSslConf :配置ssl配置文件。
  • -numListstatusThreads :用于构建文件清单的线程数(最多40个),当文件目录结构复杂时应该适当增大该值。
  • -overwrite:选择无条件覆盖目标文件,即使它们存在。
  • -p :保留源文件状态(rbugpcaxt)(复制,块大小,用户,组,权限,校验和类型,ACL,XATTR,时间戳)
  • -sizelimit :(已弃用!)限制复制到 <=n 的文件数字节。
  • -skipcrccheck:是否跳过源和目标路径之间的 CRC 检查。
  • -strategy :选择复制策略,默认值 uniformsize,每个 map 复制的文件总大小均衡;可以设置为 dynamic,使更快的 map 复制更多的文件,以提高性能。
  • -tmp: 要用于原子的中间工作路径承诺。
  • -update:检查的标准是源和目标文件大小、块大小和校验和;如果它们不同,源文件将替换目标文件,反之则跳过。
  • -mapred : 用于指定 distcp 使用的 MapReduce 配置文件,如果不指定则使用默认的 Hadoop 配置。可以在此处指定例如 -D mapreduce.job.reduce.slowstart.completedmaps=0.5 等特定的配置选项。
  • -pb : 用于指定内部缓冲区的大小。默认大小为 4 MB。
  • -simulate: 用于模拟复制操作,而不是实际进行复制。如果需要测试 distcp 的性能,可以使用此选项。
  • -async: 用于启用异步文件系统操作。启用此选项可以提高复制效率,但可能会降低数据可靠性。
  • -direct: 用于启用 NIO 直接缓冲模式进行文件 I/O。启用此选项可以提高复制效率。

你可能感兴趣的:(Hadoop,hadoop,大数据,分布式)