【问题标题】:How to upload large files from HDFS to S3如何将大文件从 HDFS 上传到 S3
【发布时间】:2016-04-12 09:33:53
【问题描述】:

我在将大文件(大于 5GB)从 HDFS 上传到 S3 时遇到问题。有没有办法将文件直接从 HDFS 上传到 S3,而不需要将其下载到本地文件系统并使用 multipart ?

【问题讨论】:

    标签: hadoop amazon-web-services amazon-s3 hdfs


    【解决方案1】:

    对于在 HDFS 和 S3 之间复制数据,您应该使用s3DistCps3DistCp 针对 AWS 进行了优化,可以跨 S3 存储桶并行高效地复制大量文件。

    s3DistCp的用法可以参考这里的文档:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html

    s3DistCp 的代码可在此处获得:https://github.com/libin/s3distcp

    【讨论】:

      【解决方案2】:

      如果您使用的是 Hadoop 2.7.1 或更高版本,请使用 s3a:// 文件系统与 S3 通信。它支持多部分上传,这是您需要的。

      更新:2016 年 9 月

      我应该补充一点,我们正在为 Hadoop 2.8 重新设计 S3A 输出流工作;当前一个缓冲堆中的分段上传,当您生成批量数据的速度超过您的网络可以推送到 s3 的速度时,它就会崩溃。

      【讨论】:

      • 这个答案的后半部分是关于上传的灾难性问题。
      • 是的,这就是为什么您应该只使用 Hadoop 2.8+ 中的快速输出流,并使用默认的磁盘存储,除非您确信切换到 bytebuffer (off heap JVM) 或 bytearray (on堆)更好。自从我在 2016 年发表该评论以来,我们已经删除了较旧的输出流并要求使用快速输出流。自 2.8.0 版本以来,我们没有发现任何错误。这让我们很开心
      猜你喜欢
      • 2014-11-07
      • 2022-10-20
      • 1970-01-01
      • 2014-06-13
      • 2011-11-21
      • 2012-02-02
      • 1970-01-01
      • 2015-06-24
      • 2012-07-31
      相关资源
      最近更新 更多