1、假如机器的CPU
的核数有 12
cores,启动多少个map task合适呢?
=> 启动12
个map task使得机器最大化使用。
每个map task处理多少数据合适?128Mb,经过实绩得到的最优解。
2、尽可能多的小文件达到128Mb,"合并"在一起
3、CombineTextInputFormat:getSplits
方法:尽可能合并同一机器,同一机架的节点的切片的文件。
1、准备测试文件8个
2、为wc程序准备好参数
3、Windows系统上运行日志:
splits数目为8
[main] DEBUG org.apache.hadoop.mapreduce.lib.input.FileInputFormat - Total # of splits generated by getSplits: 8, TimeTaken: 473
4、添加如下配置:
5、再次运行得到splits为1.
[main] INFO org.apache.hadoop.mapreduce.JobSubmitter - number of splits:1