Hadoop:对小文件使用CombineFileInputFormat是否可以提高性能?

时间:2016-03-19 21:37:58

标签: hadoop mapreduce

我是hadoop的新手并且在本地机器上进行了一些测试。

有许多解决方案可以处理许多小文件。我正在使用 CombinedInputFormat 扩展 CombineFileInputFormat

我看到使用 CombinedInputFormat 将mapper的数量从100更改为25。由于映射器的数量减少了,我还应该期待任何性能提升吗?

我已经在很多小文件上执行了map-reduce工作,没有 CombinedInputFormat 100位地图用了10分钟

但是当使用 CombinedInputFormat 执行map-reduce作业时: 25个图示处理器需要33分钟

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Hadoop使用少量大文件表现更好,而不是大量的小文件。 (" Small"这里意味着比Hadoop分布式文件系统(HDFS)块小得多。" Number"表示范围为1000s)。

这意味着如果你有1000个1Mb大小的文件,基于普通TextInputFormat的Map-reduce作业将创建1000个Map任务,每个map任务都需要一定的时间来开始和结束。任务创建中的这种延迟会降低作业的性能

在资源有限的多租户群集中,获取大量Map地址也很困难。

请参阅此link了解更多详情和基准测试结果。