我正在运行一个输出数千千兆字节数据的EMR作业。每个映射任务输出10千兆字节的数据,据我所知,这些中间输出存储在运行映射任务的机器上的磁盘上。因此,在同一台机器处理了多个映射任务后,磁盘空间不足以存储这些映射任务的中间结果。我知道如何在S3上存储最终结果(在运行reducer之后),但有没有办法让中间输出(映射器的结果)也存储在S3上?
不幸的是,分配更多的机器(或具有更多内存的机器)并不是一个实用的解决方案,因为我将在数百TB的数据上运行相同的工作。
非常感谢任何帮助。
答案 0 :(得分:0)
如果其他人遇到此问题,我无法找到使用S3存储map / reduce任务的中间结果的方法。但是,我能够通过升级到EMR 4.x然后将EBS卷附加到群集实例来绕过此问题,详见此处http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-storage-ebs.html。