动态分区
静态分区:手动指定分区名。动态分区:根据查询语句自动生成的分区名
https://blog.csdn.net/weixin_34104341/article/details/89795410
-- 开启动态分区。默认值是true
set hive.exec.dynamic.partition=true;
-- 默认值是strict,默认要求分区字段必须有一个是静态的分区值
set hive.exec.dynamic.partition.mode=nonstrict;
-- 下边这俩不常用
-- 一个DML操作可以创建的最大动态分区数,默认是1000
set hive.exec.max.dynamic.partitions=100000;
-- 每个节点生成的动态分区的最大个数。默认值是默认100
set hive.exec.max.dynamic.partitions.pernode=10000;
内存溢出
-- 默认是false。这个参数可以使得每个分区只产生一个文件,
-- 可以解决动态分区时的OOM问题,但会严重降低reduce处理并写入一个分区的速度
set hive.optimize.sort.dynamic.partition=true;
-- 设置map内存,默认1024
-- -Xmx 最大堆大小
set mapreduce.map.memory.mb=8192;
-- 设置map jvm内存(小于map内存)
set mapreduce.map.java.opts=-Xmx6144m;
-- 设置reduce内存
set mapreduce.