s3-dist-cp 介绍教程示例使用方法

2023-12-13 04:05:18

s3-dist-cp 是 AWS EMR 内置的用于 S3 和 HDFS 之间文件拷贝的专用工具,与 Hadoop 的 distcp 类似,也是通过 Map-Reduce 作业的方式实现分布式的文件复制(distcp 就是 distributed copy 分布式拷贝的意思)。

s3-dist-cp 并不是一个简单的在 S3 和 HDFS 之间拷贝文件的工具,因为它并不是一个独立运行的命令行工具,而是要依靠 EMR 集群提交 MR 作业。实际上,它更多应用在超大数据集的迁移上,例如将原来 HDFS 上的构建的数据湖整体迁移到 S3 上,或者将 S3 上存放的 HBase 备份快照拉到 EMR 集群的本地 HDFS 上进行恢复,这些操作都要复制体量超大的数据,只有借助 MR 作业进行分布式的拷贝,才有可能在较短时间内完成。

s3-dist-cp 的复制速度非常快,除了因为其本身是 MR 形式的分布式作业外,它的实现方式也决定了它要比普通的 MR 导入导出作业要快,一个很有说明性的例子就是 HBase 的 snapshot export 命令,这一命令也是一个 MR 作业,当 -copy-from-copy-to 分别是 S3 和 HDFS 路径时,它也本质上也是在 S3 和 HDFS 之间拷贝数据,但测试表明,它的速度远不如 s3-dist-cp (多出1.5倍或更多时间)。目前没有关于 s3-dist-cp 实现细节的资料,推测可能是对下载的多个文件做了某种合并处理,以更大的文件形式统一下载。

以下是一个使用 s3-dist-cp 从 S3 上下载 HBase 快照到 本地 HDFS 的示例:

文章来源:https://blog.csdn.net/bluishglc/article/details/134892571
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。