1

如果我有很多小文件(~HDFS 块大小)与几个大文件相比,它会对作业产生的映射任务的数量产生影响吗

4

1 回答 1

3

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

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

如果您无法控制文件并且它们可能会变得非常小,我建议您使用不同的InputFormat调用CombineFileInputFormat,它将多个输入文件组合在同一个拆分中,在这种情况下,地图的数量将仅取决于数据的总量,无论的文件数。可以在此处找到实现。

于 2013-02-09T01:41:00.570 回答