distcp指令并行拷贝大数据文件

您可以使用目标群集上的 distcp 工具启用复制作业以移动数据。在运行不同 CDH 版本的两个群集之间,运行 distcp 工具(hftp:// 作为源文件系统且 hdfs:// 作为目标文件系统)。它将 HFTP 协议用于源文件系统且 HDFS 协议用于目标文件系统。HFTP 的默认端口为 50070,HDFS 的默认端口为 8020。此外,还通过 s3:// 或 s3n:// 协议支持 Amazon S3 块和本地文件系统。

源 URI 示例:hftp://namenode-location:50070/basePath

其中,namenode-location 是指 CDH 4 NameNode 主机名称,如其配置的 fs.default.name 所定义,且 50070 是 NameNode 的 HTTP 服务器端口,如其配置的 dfs.http.address 所定义。

目标 URI 示例:hdfs://nameservice-id/basePath 或 hdfs://namenode-location

这是指 CDH 5 NameNode,如其配置的 fs.defaultFS 所定义。

以上两个 URI 中的 basePath 是指想要复制的目录(如明确需要一个)。

Amazon S3 块文件系统 URI 示例:s3://accessKeyid:secretkey@bucket/file

Amazon S3 本地文件系统 URI 示例:s3n://accessKeyid:secretkey@bucket/file

distcp 命令

如需更多帮助并查看 distcp 命令中可用的所有选项,请使用以下命令查看内置帮助:

$ hadoop distcp
运行  distcp 复制,方法是在 CDH 5 群集上发出以下命令:
  重要提示 如果您将  distcp 用作升级的一部分,请仅在升级过程中在目标群集上运行以下命令,在此示例中,为 CDH 5 群集。
$ hadoop distcp hftp://cdh4-namenode:50070/ hdfs://CDH5-nameservice/
$ hadoop distcp s3://accessKeyid:secretkey@bucket/ hdfs://CDH5-nameservice/
$ hadoop distcp s3n://accessKeyid:secretkey@bucket/ hdfs://CDH5-nameservice/

或者使用特定路径,例如 /hbase,以移动 HBase 数据,例如:

$ hadoop distcp hftp://cdh4-namenode:50070/hbase hdfs://CDH5-nameservice/hbase
$ hadoop distcp s3://accessKeyid:secretkey@bucket/file hdfs://CDH5-nameservice/bucket/file
$ hadoop distcp s3n://accessKeyid:secretkey@bucket/file hdfs://CDH5-nameservice/bucket/file

Distcp 随后将提交执行 逐文件复制的常规 MapReduce 作业。

DistCp 是一个用于在不同群集中的分布式文件系统之间复制文件的通用实用程序。通常情况下,您可以使用 DistCp 以在任一方向的兼容群集之间复制文件。例如,您可以将文件从 HDFS 文件系统复制到 Amazon S3 文件系统。以上示例特定于使用 DistCp 辅助从 CDH 4 升级到 CDH 5。

distcp 协议支持

下表列出了在不同版本 CDH 上使用具有 distcp 命令的不同协议的支持。在该表中,安全是指该群集已配置为使用 Kerberos。由于包括 HDFS-6776,因此,仅 CDH 5.1.3 以后的版本才支持在安全群集和非安全群集之间复制。

  注释 HFTP 为只读协议,无法用于目标。
目标 源协议和配置 目标协议和配置 发出 distcp 命令的位置 所需回退配置 状态
CDH 4 CDH 4 hdfs 或 webhdfs,非安全 hdfs 或 webhdfs,非安全 源或目标   确定
CDH 4 CDH 4 hftp,非安全 hdfs 或 webhdfs,非安全 目标   确定
CDH 4 CDH 4 hdfs 或 webhdfs,安全 hdfs 或 webhdfs,安全 源或目标   确定
CDH 4 CDH 4 hftp,安全 hdfs 或 webhdfs,安全 目标   确定
CDH 4 CDH 5 webhdfs,非安全 webhdfs 或 hdfs,非安全 目标   确定
CDH 4 CDH 5(5.1.3 及更高版本) webhdfs,非安全 webhdfs,安全 目标 确定
CDH 4 CDH 5 webhdfs 或 hftp,非安全 webhdfs 或 hdfs,非安全 目标   确定
CDH 4 CDH 5 webhdfs 或 hftp,安全 webhdfs 或 hdfs,安全 目标   确定
             
CDH 5 CDH 5 hdfs 或 webhdfs,非安全 hdfs 或 webhdfs,非安全 源或目标   确定
CDH 5 CDH 5 hftp,非安全 hdfs 或 webhdfs,非安全 目标   确定
CDH 5 CDH 5 hdfs 或 webhdfs,安全 hdfs 或 webhdfs,安全 源或目标   确定
CDH 5 CDH 5 hftp,安全 hdfs 或 webhdfs,安全 目标   确定
CDH 5 CDH 5(5.1.3 及更高版本) hdfs 或 webhdfs,安全 hdfs 或 webhdfs,非安全 确定
要启用回退配置以在安全群集和非安全群集之间进行复制,请将以下复制到 HDFS  core-default.xml,方法是使用该配置代码段(如使用的是 Cloudera Manager),或者直接编辑文件。

  ipc.client.fallback-to-simple-auth-allowed
  true

你可能感兴趣的:(hadoop的学习)