hive小文件问题

1.问题背景:流量表数据添加字段解析,需要对数据进行重跑,就是进行 insert overwrite ,hive的引擎是 tez。不过插入后发现查询特别的慢,经排查发现是由于重新插入数据导致了很多小文件,从而导致数据查询特别慢。

2.问题解决:可以添加参数进行小文件合并

 

#动态分区
SET hive.exec.dynamic.partition=true; 
SET hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.max.dynamic.partitions.pernode = 10000;
SET hive.exec.max.dynamic.partitions=10000;

#在mr下
set hive.execution.engine=mr; --设置引擎
-- 在map-only job后合并文件,默认true
set hive.merge.mapfiles = true;
-- 在map-reduce job后合并文件,默认false
set hive.merge.mapredfiles = true;
-- 合并后每个文件的大小,默认256000000
set hive.merge.size.per.task = 256000000; --256M
-- 平均文件大小,是决定是否执行合并操作的阈值,默认16000000
set hive.merge.smallfiles.avgsize = 256000000; --256M

#在tez下
set hive.merge.tezfiles=true; --增加这个参数

 https://www.bbsmax.com/A/pRdBxLBeJn/

posted @ 2021-07-24 14:36  monkey66  阅读(153)  评论(0编辑  收藏  举报