文件数目过多,增加namenode的压力,hdfs的压力,同时需要更多map进程,影响处理效率。
可以通过配置如下几个参数,合并Map和Reduce的结果文件,消除这些影响。
- 控制每个任务合并小文件后的文件大小(默认256000000):hive.merge.size.per.task
- 告诉hadoop什么样的文件属于小文件(默认16000000):hive.merge.smallfiles.avgsize
- 是否合并Map的输出文件(默认true):hive.merge.mapfiles
- 是否合并Reduce的输出文件(默认false):hive.merge.mapredfiles