已设置参数
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个空文件 合并的参数没有起到效果 请问如何解决?
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。