Amazon s3 编写单个Hadoop映射将输出减少到多个S3对象中
我正在实现一个Hadoop Map reduce作业,它需要在多个S3对象中创建输出。 Hadoop本身只创建一个输出文件(S3对象),但我需要将输出划分为多个文件Amazon s3 编写单个Hadoop映射将输出减少到多个S3对象中,amazon-s3,hadoop,Amazon S3,Hadoop,我正在实现一个Hadoop Map reduce作业,它需要在多个S3对象中创建输出。 Hadoop本身只创建一个输出文件(S3对象),但我需要将输出划分为多个文件 如何实现这一点?我通过使用S3工具包将reducer方法的输出直接写入S3来实现这一点。因为我是在EC2上运行的,所以这是快速和免费的 通常,您希望Hadoop尽可能多地处理您的输入和输出,以实现更干净的映射器和还原器;当然,您希望在管道的最后写入S3,让Hadoop的代码移动通过HDFS完成它的工作 无论如何,我建议您对所有数据进
如何实现这一点?我通过使用S3工具包将reducer方法的输出直接写入S3来实现这一点。因为我是在EC2上运行的,所以这是快速和免费的 通常,您希望Hadoop尽可能多地处理您的输入和输出,以实现更干净的映射器和还原器;当然,您希望在管道的最后写入S3,让Hadoop的代码移动通过HDFS完成它的工作 无论如何,我建议您对所有数据进行分区,并在最后的reduce任务中将整个输出集写入S3,每个S3文件一个输出集。这使得代码中的编写器逻辑尽可能少。这对我来说是有回报的,因为我最终得到了一个最小的Hadoop S3工具包,用于几个任务流
我需要在reducer代码中写入S3,因为S3/S3n文件系统还不成熟;它们现在可能工作得更好。您还知道多路输出格式吗? 它与S3无关,但通常它允许将输出写入多个文件,实现给定的逻辑