java - 如何将多个文件从 hdfs 上传到单个 s3 文件?

标签 java hadoop amazon-s3

我有一个 hadoop 作业,它将许多部分输出到 hdfs,例如某个文件夹。

例如:

/output/s3/2014-09-10/part...

最好的方法是什么,使用s3 java api将这些部分上传到s3中的signle文件

例如

s3:/jobBucket/output-file-2014-09-10.csv

作为一种可能的解决方案,可以选择合并各部分并将结果写入 hdfs 单个文件,但这将创建双 I/O。 使用单个 reducer 也不是选择

谢谢

最佳答案

尝试使用FileUtil#copyMerge方法,它允许您在两个文件系统之间复制数据。我还发现S3DistCp tool可以将数据从 HDFS 复制到 Amazon S3。您可以指定 --groupBy,(.*) 选项来合并文件。

关于java - 如何将多个文件从 hdfs 上传到单个 s3 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826993/

相关文章:

java - 设备跟踪协议(protocol)

java - 防止使用两个数据库更改 Spring Boot 中的架构

java - 如何在 JavaFX 中将 SimpleLocalizedStringProperty (controlsfx-plugin) 与 ResourceBundle 结合使用

database - 查询Hive处理的大量数据

node.js - 使用 Express 从 S3 流式传输文件,包括有关长度和文件类型的信息

java - 用于 Spring Boot 应用程序的 Logback 自定义数据库附加程序

csv - 使用水槽将 csv 文件传输到 hdfs,并将它们转换为 avro

将 R 与 SimpleDB 或 BigQuery 结合使用或将 PHP 与 SimpleDB 结合使用的建议

amazon-web-services - 如何删除Elastic Beanstalk生成的空S3存储桶?

python - Boto3:WAITINGS3流式上传完成