1.设置小文件合并配置参数
set mapred.max.split.size=100000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
2.限制Reducer个数的上限
3.以上两类参数的调优说明:
- 设置split size是需要减少map数量,由于一个split对应一个map然而集群上存在过多的小文件导致map数量大,
平均每个map计算的数据量少,启动和销毁的时间占比大,导致整个任务浪费时间; - 设置reduce个数及其上限同样也是要限制reduce的数量,reduce的平均运行时长为1s,一千多个reduce浪费资源,所以调小reduce的数量使其计算数据的时间变长,从而节省资源和时间。