【问题标题】:Why we need distcp command to copy data from hdfs to s3, when we can directly write the data to s3 location?为什么我们需要 distcp 命令将数据从 hdfs 复制到 s3,而我们可以直接将数据写入 s3 位置?
【发布时间】:2019-10-11 08:44:00
【问题描述】:

请帮助我理解 distcp 的使用,我们使用的是 s3,在一些脚本中我可以看到他们直接将数据写入 s3,并且很多情况下将数据写入 hdfs,然后使用 distcp 将数据复制到 s3。

那么什么时候使用distcp,什么时候可以直接写入云端呢?

【问题讨论】:

  • 你的问题没有太大意义。您可以使用 HDFS 或 S3 来存储数据。两者都有合法的用例和不同的权衡。数据操作可以使用 Hadoop 中的完全限定路径直接寻址 S3 或 HDFS。您甚至可以将 Hadoop 配置为使用 S3 作为默认 FS。

标签: amazon-web-services apache-spark hadoop amazon-s3 pyspark-dataframes


【解决方案1】:

首先你需要很清楚为什么要使用distcp。

Distcp主要用于跨hadoop集群传输。假设您在加利福尼亚有两个远程 hadoop 集群 1,其他 1 在亚利桑那州,cluster1 是您的主要集群,cluster2 是您的次要集群,这意味着您正在 cluster1 上进行所有处理,并在处理完成后将新数据转储到 cluster2集群2。

在此场景中,您将 distcp(复制)您的数据从 cluster1 到 cluster2,因为两个集群不同,您可以非常快速地复制数据,因为它使用映射器并行复制数据。因此,您可以将 distcp 视为类似于 ftp,用于跨不同服务器进行本地数据复制。

在您的情况下,我认为您提到的 hdfs 是您将数据复制到 aws s3 的其他 hadoop cluser,反之亦然。

希望能解开你的疑惑

【讨论】:

    猜你喜欢
    • 2023-01-24
    • 2015-11-13
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2015-07-17
    相关资源
    最近更新 更多