我有一个 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/