测试数据:20GB gz数据,文件数4.7万个,大小从上百MB到几MB

测试机器:Slave 2台。8core,32GB内存,5 map slot,3 reduce slot

Job逻辑:输出文件总行数

 

  • 使用Pig耗时:12mins
  • java代码(FileInputFormat):>60 min (开启jvm重用,使用默认FileInputFormat)
  • java代码(CombineFileInputFormat):21 min 

结论:Pig对于处理小文件做了优化,性能远远好于Java编写代码。

 

 

关于PigInputFormat

  • 默认使用集群配置block size来合并小文件,并作为input split传给map方法
  • 时间input split 167个,远远小于Java编写代码( FileInputFormat )的4.7个input splits

 

-- end