随着输入gz文件数量的增加,Hadoop作业完成时间也会增加

时间:2014-12-04 11:34:43

标签: hadoop mapreduce

当我有很多KB的小gz文件时,我一直注意到这种行为。 Hadoop工作需要更多时间才能完成。与我将这些小gz文件合并为一个大gz文件的情况相反。另外,小gz文件中的映射器数量与文件数量相同,为什么我这样呢?但在后一种情况下它只是一个。那么,这可能是一个原因,是吗?

1 个答案:

答案 0 :(得分:1)

Hadoop通常可以很好地处理少量大文件,而不是相反。

默认情况下,MapReduce为每个必须处理的输入文件分配一个map任务。因此,如果你有很多小的gz文件,那么默认情况下每个文件都有自己的Mapper来处理文件。通常,JVM初始化需要大约几秒钟,而不是实际处理。因此,随着文件数量的增加,您会看到时间的增加。

建议让文件接近块大小,以消除小文件问题。

从cloudera和此SF blog post查看此question