Hive 插入动态分区表调优

Hive 插入动态分区的问题

insert into table xxx partition(xxxx)
select ...

使用动态分区时首先不要忘记的一些配置:

是否开启动态分区 hive.exec.dynamic.partition
动态分区是否使用严格模式 hive.exec.dynamic.partition.mode
MR总共可创建最大分区数 hive.exec.max.dynamic.partitions (默认1000)以及当前节点可创建的最大分区数 hive.exec.max.dynamic.partitions.pernode (默认100)

动态分区产生大量小文件

我这里分区表的存储格式是Parquet,insert select方式动态插入动态分区中,按天分区数据量非常大,一天几十G的文件
因为数据量大,而且分区数多,就会起大量map,从而产生大量小文件(map数x分区数)。小文件过多不仅影响查询,NameNode中的元数据信息管理也会受很大影响

参考:https://blog.csdn.net/mhtian2015/article/details/79898169

insert into table xxx partition(pcol)
select ...
from ...
distribute by(pcol)

这样做分区数决定了reduce数&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值