2011-07-07 60 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瞭解更多信息 –

相關問題