2011-07-07 30 views
0

鉴于我需要使用10个实例来处理20 Gb的输入。 与2Gb的10个输入文件相比,5Gb的4个输入文件有什么不同? 在后一种情况下,Amazon Elastic MapReduce可以自动分配10个实例的4个输入文件的负载吗? (我正在使用流式方法,因为我的映射器是使用红宝石书写的)Amazon Elastic Map Reduce:输入片段大小是否重要

回答

3

唯一重要的是文件是否可拆分。

如果这些文件是未压缩的纯文本或用lzo压缩的,那么Hadoop将会整理出分裂。

X5 2GB的文件会导致〜100个分割,因此〜100映射任务(10GB/128MB(EMR块大小)〜= 100)

X10 1GB的文件会导致再次〜100分割,因此,再次, 100个地图任务。

如果文件是gzip或bzip2压缩的,那么Hadoop(至少是在EMR上运行的版本)不会拆分文件。

X5 2GB文件将导致仅5分割(并再次因此仅5映射任务)

X10 1GB的文件将导致仅10分割(并再次因此仅10映射任务)

+0

所以拆分是基于换行的,对吧? –

+0

仍然不知道如何拆分与流API的工作方式... –

+0

拆分大小,根据mapred.max.split.size是基于字节,而不是行。如果您使用NLineInputFormat,则可以使用mapred.line.input.format.linespermap根据行数指定“分割”。请参阅http://www.scribd.com/doc/23046928/Hadoop-Performance-Tinging了解更多信息 –

相关问题