Hive之常用参数

#reduce的输出是否压缩

set mapred.output.compress=true;

 

#控制是否将hive中最后的结果进行压缩的。如果将该参数设置为true的时候,文件类型一般会选择SequenceFile。

set hive.exec.compress.output=true;

 

#决定了使用哪种文件格式,默认textfile

SET hive.default.fileformat=Orc;

 

#允许所有分区为动态分区,默认strict

set hive.exec.dynamic.partition.mode=nonstrict;

 

#开启动态分区功能,默认false

set hive.exec.dynamic.partition=true;

 

#在所有执行MR的节点上,最大一共可以创建多少个动态分区,默认1000;

SET hive.exec.max.dynamic.partitions=100000;

 

#在每个执行MR的节点上,最大可以创建多少个动态分区,默认100;

SET hive.exec.max.dynamic.partitions.pernode=100000;

 

#可以控制一个sql中多个可并行执行的job

set hive.exec.parallel=true;

#控制对于同一个sql来说同时可以运行的job的最大值,该参数默认为8

set hive.exec.parallel.thread.number=3;

 

#控制一个job会有多少个reducer来处理,依据的是输入文件的总大小。默认1GB

#这个并不会影响mapre.reduce.tasks参数的设置。

#mapred.reduce.tasks  这个参数如果指定了,hive就不会用它的estimation函数来自动    计算reduce的个数,而是用这个参数来启动reducer。默认是-1.

#如果我们不指定mapred.reduce.tasks, hive会自动计算需要多少个reducer。

#计算的公式:  reduce个数 =  InputFileSize   /   bytes per reducer

set hive.exec.reducers.bytes.per.reducer=128000000;

 

#设置为true,hive会首先尝试本地模式执行,尽可能避免mapreduce

hive.exec.mode.local.auto

 

#可以将表字段打印出来

Hiveconf配置项hive.cli.print.header=true

 

#为true来提高聚合性能,在map端进行顶级聚合,会需要更多的内存

hive.map.aggr

 

#权限

set hive.warehouse.subdir.inherit.perms=false;

 

#map任务虚拟CPU核数,cdh默认1

set mapreduce.map.cpu.vcores=4;

 

#reduce任务虚拟CPU核数,cdh默认1

set mapreduce.reduce.cpu.vcores=8;

 

#map任务内存,cdh默认1G

set mapreduce.map.memory.mb=12288;

 

#reduce任务内存,cdh默认1G

set mapreduce.reduce.memory.mb=16384;

 

#启动 JVM 虚拟机时启动参数,而认值-Xmx200m,表示这个 Java 程序可以使用的最大堆内存数,

#一旦超过这个大小,JVM 就会抛出 Out of Memory 异常,并终止进程。

#mapreduce.map.java.opts一定要小于mapreduce.map.memory.mb

set mapreduce.map.java.opts=-Xmx9216M;

set mapreduce.reduce.java.opts=-Xmx12288M;

 

#文件分片的存储空间,建议设为-1,不对其进行限制

set mapreduce.job.split.metainfo.maxsize=-1;

 

#启动mapjoin

hive.auto.convert.join=true

posted @ 2018-12-05 15:11  才华充电中  阅读(1507)  评论(0编辑  收藏  举报