最好去看hive官网,版本更新后可能会不适用
hive命令行里面临时增大内存量即可,具体命令如下:
set mapreduce.map.memory.mb=2560;
set mapreduce.map.java.opts=-Xmx2048m;
set mapreduce.reduce.memory.mb=2560;
set mapreduce.reduce.java.opts=-Xmx2048m;
打开动态分区
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
hive.exec.dynamic.partition(缺省false): 设置为true允许使用dynamic partition
hive.exec.dynamic.partition.mode(缺省strick):设置dynamic partition模式(nostrict允许所有partition列都为dynamic partition,strict不允许)
hive.exec.max.dynamic.partitions.pernode (缺省100):每一个mapreduce job允许创建的分区的最大数量,如果超过了这个数量就会报错
hive.exec.max.dynamic.partitions (缺省1000):一个dml语句允许创建的所有分区的最大数量
hive.exec.max.created.files (缺省100000):所有的mapreduce job允许创建的文件的最大数量
中间运算指定压缩
set hive.exec.compress.output = true;
set mapred.output.compress = true;
set mapred.output.compression.codec = org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs = org.apache.hadoop.io.compress.GzipCodec;
Hive 大计算任务相关的三个设置参数:
--限制并发Map数量:
set mapreduce.job.running.map.limit=200;
--设置Reduce任务数量:
set mapreduce.job.reduces=100;
--设置Map输出结果压缩:
set mapreduce.map.output.compress=true;