我是hadoop的新手并且在本地机器上进行了一些测试。
有许多解决方案可以处理许多小文件。我正在使用 CombinedInputFormat 扩展 CombineFileInputFormat 。
我看到使用 CombinedInputFormat 将mapper的数量从100更改为25。由于映射器的数量减少了,我还应该期待任何性能提升吗?
我已经在很多小文件上执行了map-reduce工作,没有 CombinedInputFormat : 100位地图用了10分钟
但是当使用 CombinedInputFormat 执行map-reduce作业时: 25个图示处理器需要33分钟。
任何帮助将不胜感激。
答案 0 :(得分:0)
Hadoop使用少量大文件表现更好,而不是大量的小文件。 (" Small"这里意味着比Hadoop分布式文件系统(HDFS)块小得多。" Number"表示范围为1000s)。
这意味着如果你有1000个1Mb大小的文件,基于普通TextInputFormat
的Map-reduce作业将创建1000个Map任务,每个map任务都需要一定的时间来开始和结束。任务创建中的这种延迟会降低作业的性能
在资源有限的多租户群集中,获取大量Map地址也很困难。
请参阅此link了解更多详情和基准测试结果。