如果我有很多小文件(~HDFS 块大小)与几个大文件相比,它会对作业产生的映射任务的数量产生影响吗
问问题
273 次
1 回答
3
这取决于InputFormat
您使用哪个,因为这决定了输入拆分计算,从而决定了地图任务的数量。
如果使用 default TextInputFormat
,每个文件至少会有 1 个拆分,因此每个文件至少有 1 个映射器,即使这些文件只有几 kB,每个映射器做的工作很少,但这会给 Map/ 带来很多开销减少框架。也就是说,如果您保证这些“小”文件将接近块大小,那可能并不重要。
如果您无法控制文件并且它们可能会变得非常小,我建议您使用不同的InputFormat
调用CombineFileInputFormat
,它将多个输入文件组合在同一个拆分中,在这种情况下,地图的数量将仅取决于数据的总量,无论的文件数。可以在此处找到实现。
于 2013-02-09T01:41:00.570 回答