已设置参数
hive.merge.mapredfiles=true; mr任务
hive.merge.mapfiles=true only map
set hive.merge.smallfiles.avgsize=16M 输出文件平均大小小于16M会自动合并
set hive.merge.size.per.task=256M 合并后所需的文件大小
hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
测试参数:
set hive.merge.smallfiles.avgsize=3; 默认16M
set mapred.min.split.size.per.node=1; 集群默认参数
set mapred.max.split.size=3; 默认256M
set mapred.min.split.size.per.rack=1; 集群默认参数
set hive.merge.size.per.task=3; 默认256M
比如当没有匹配一条数据时候 执行hivesql mr程序
create table test_data_source_insert_cr10 as select * from test_data_source_insert where name like 'kkk';
结果:
[root@bigdataxxxx ~]# hdfs dfs -ls /user/hive/warehouse/wqg.db/test_data_source_insert_cr10
Found 4 items
-rwxrwx--x+ 3 hive hive 0 2021-09-02 11:13 /user/hive/warehouse/wqg.db/test_data_source_insert_cr10/000000_0
-rwxrwx--x+ 3 hive hive 0 2021-09-02 11:13 /user/hive/warehouse/wqg.db/test_data_source_insert_cr10/000001_0
-rwxrwx--x+ 3 hive hive 0 2021-09-02 11:13 /user/hive/warehouse/wqg.db/test_data_source_insert_cr10/000002_0
-rwxrwx--x+ 3 hive hive 0 2021-09-02 11:13 /user/hive/warehouse/wqg.db/test_data_source_insert_cr10/000003_0
产生了4个空文件 合并的参数没有起到效果 请问如何解决?