hadoop是inputsplit大小还是map任务的数量受输入文件数量的影响

yhived7q  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(319)

如果我有很多小文件(~hdfs block size)而没有几个大文件,那么一个作业产生的Map任务的数量会有所不同吗

68de4m5k

68de4m5k1#

这要看是哪一个 InputFormat 使用,因为这是决定输入拆分计算的因素,从而决定Map任务的数量。
如果使用默认值 TextInputFormat ,每个文件将至少有一个剥离,因此每个文件至少有一个Map器,即使这些文件只有几kb,每个Map器所做的工作也很少,但这为map/reduce框架带来了大量开销。也就是说,如果您能保证这些“小”文件将接近块大小,这可能并不重要。
如果你无法控制你的文件,它们可能会变得非常小,我建议使用不同的 InputFormat 打电话 CombineFileInputFormat 它将多个输入文件合并到同一个分割中,在这种情况下,Map的数量将仅取决于数据的总体数量,而与文件的数量无关。在这里可以找到一个实现。

相关问题