Hive系列文章
Hive表的基本操作
Hive中的集合数据类型
Hive动态分区详解
hive中orc格式表的数据导入
Java通过jdbc连接hive
通过HiveServer2访问Hive
SpringBoot连接Hive实现自助取数
hive关联hbase表
Hive udf 使用方法
Hive基于UDF进行文本分词
Hive窗口函数row number的用法
数据仓库之拉链表
动态分区调整
动态分区属性:设置为true表示开启动态分区功能(默认为false)hive.exec.dynamic.partition=true;
动态分区属性:设置为nonstrict,表示允许所有分区都是动态的(默认为strict)设置为strict,表示必须保证至少有一个分区是静态的hive.exec.dynamic.partition.mode=strict;
动态分区属性:每个mapper或reducer可以创建的最大动态分区个数hive.exec.max.dynamic.partitions.pernode=100;
动态分区属性:一个动态分区创建语句可以创建的最大动态分区个数hive.exec.max.dynamic.partitions=1000;
动态分区属性:全局可以创建的最大文件个数hive.exec.max.created.files=100000;
控制DataNode一次可以打开的文件个数 这个参数必须设置在DataNode的$HADOOP_HOME/conf/hdfs-site.xml文件中
<property>
<name>dfs.datanode.max.xcievers</name>
<value>8192</value>
</property>
XML
注意
在Hive中,动态分区会造成在插入数据过程中,生成过多零碎的小文件
动态分区插入
如果需要创建非常多的分区,用户就需要写非常多的条件查询sql把数据插入对应分区。好在Hive提供了动态分区功能,可以根据分区字段的取值自动创建分区。前面列出的开启动态分区hive.exec.dynamic.partition,并且hive.exec.dynamic.partition.mode需要为非严格模式,通常如果分区很多的话,hive.exec.max.dynamic.partitions.pernode也需要设置为一个较大的数,否则会有报错提醒。