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数&#