标签: hadoop mapreduce
当我有很多KB的小gz文件时,我一直注意到这种行为。 Hadoop工作需要更多时间才能完成。与我将这些小gz文件合并为一个大gz文件的情况相反。另外,小gz文件中的映射器数量与文件数量相同,为什么我这样呢?但在后一种情况下它只是一个。那么,这可能是一个原因,是吗?
Hadoop
答案 0 :(得分:1)
Hadoop通常可以很好地处理少量大文件,而不是相反。
默认情况下,MapReduce为每个必须处理的输入文件分配一个map任务。因此,如果你有很多小的gz文件,那么默认情况下每个文件都有自己的Mapper来处理文件。通常,JVM初始化需要大约几秒钟,而不是实际处理。因此,随着文件数量的增加,您会看到时间的增加。
建议让文件接近块大小,以消除小文件问题。
从cloudera和此SF blog post查看此question。