Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 编写单个Hadoop映射将输出减少到多个S3对象中_Amazon S3_Hadoop - Fatal编程技术网

Amazon 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完成它的工作 无论如何,我建议您对所有数据进

我正在实现一个Hadoop Map reduce作业,它需要在多个S3对象中创建输出。 Hadoop本身只创建一个输出文件(S3对象),但我需要将输出划分为多个文件


如何实现这一点?

我通过使用S3工具包将reducer方法的输出直接写入S3来实现这一点。因为我是在EC2上运行的,所以这是快速和免费的

通常,您希望Hadoop尽可能多地处理您的输入和输出,以实现更干净的映射器和还原器;当然,您希望在管道的最后写入S3,让Hadoop的代码移动通过HDFS完成它的工作

无论如何,我建议您对所有数据进行分区,并在最后的reduce任务中将整个输出集写入S3,每个S3文件一个输出集。这使得代码中的编写器逻辑尽可能少。这对我来说是有回报的,因为我最终得到了一个最小的Hadoop S3工具包,用于几个任务流


我需要在reducer代码中写入S3,因为S3/S3n文件系统还不成熟;它们现在可能工作得更好。

您还知道多路输出格式吗? 它与S3无关,但通常它允许将输出写入多个文件,实现给定的逻辑