【发布时间】:2016-04-12 09:33:53
【问题描述】:
我在将大文件(大于 5GB)从 HDFS 上传到 S3 时遇到问题。有没有办法将文件直接从 HDFS 上传到 S3,而不需要将其下载到本地文件系统并使用 multipart ?
【问题讨论】:
标签: hadoop amazon-web-services amazon-s3 hdfs
我在将大文件(大于 5GB)从 HDFS 上传到 S3 时遇到问题。有没有办法将文件直接从 HDFS 上传到 S3,而不需要将其下载到本地文件系统并使用 multipart ?
【问题讨论】:
标签: hadoop amazon-web-services amazon-s3 hdfs
对于在 HDFS 和 S3 之间复制数据,您应该使用s3DistCp。 s3DistCp 针对 AWS 进行了优化,可以跨 S3 存储桶并行高效地复制大量文件。
s3DistCp的用法可以参考这里的文档:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html
s3DistCp 的代码可在此处获得:https://github.com/libin/s3distcp
【讨论】:
如果您使用的是 Hadoop 2.7.1 或更高版本,请使用 s3a:// 文件系统与 S3 通信。它支持多部分上传,这是您需要的。
更新:2016 年 9 月
我应该补充一点,我们正在为 Hadoop 2.8 重新设计 S3A 输出流工作;当前一个缓冲堆中的分段上传,当您生成批量数据的速度超过您的网络可以推送到 s3 的速度时,它就会崩溃。
【讨论】: