InputSplit大小或受输入文件数影响的映射任务数



如果我有很多小文件(~HDFS块大小)和一些大文件

,这会对作业产生的映射任务数量产生影响吗

这取决于您使用的InputFormat,因为这决定了输入拆分计算,从而决定了映射任务的数量。

如果使用默认的TextInputFormat,则每个文件将至少有一个拆分,因此每个文件至少有1个映射器,即使这些文件只有几个kB,每个映射器也只做很少的工作,但这会给Map/Reduce框架带来很多开销。也就是说,如果你保证这些"小"文件将接近块大小,那可能并不重要。

如果你无法控制你的文件,而且它们可能会变得非常小,我建议使用一种不同的InputFormat,称为CombineFileInputFormat,它将几个输入文件组合在同一个分割中,在这种情况下,映射的数量只取决于数据的总量,而不考虑文件的数量。可以在此处找到实现。

相关内容

  • 没有找到相关文章

最新更新