HIVE自动合并输出的小文件的主要优化手段为:HIVE将会启动一个独立的map-reduce任务进行输出文件的merge。
set hive.merge.mapfiles = true:
在只有map的作业结束时合并小文件,
set hive.merge.mapredfiles = true:
在Map-Reduce的任务结束时合并小文件,默认为False;
set hive.merge.size.per.task = 256000000;
合并后每个文件的大小,默认256M
set hive.merge.smallfiles.avgsize=16000000;
当输出文件的平均大小小于16M时合并。
set hive.merge.orcfile.stripe.level=false;
当设置为true,orc文件进行stripe Level级别的合并,当设置为false,orc文件进行文件级别的合并。