hive进阶宝典一——hive常用参数设置

1.hive并行执行

set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=8;

**2.增大hive memory--java heep space **

--mr
set mapreduce.map.memory.mb=10240;
set mapreduce.reduce.memory.mb=10240;
--tez
set hive.tez.container.size=20480;
set hive.tez.java.opts=-Xmx16384m;

3.mr读取递归目录设置
hive执行引擎为mr时,默认不支持读取递归目录,如要读取递归目录下的文件,则需要进行如下设置

set mapreduce.input.fileinputformat.input.dir.recursive=true;
set hive.mapred.supports.subdirectories=true;

4.显示当前数据库名称

set hive.cli.print.current.db=true;
--显示列名
set hive.cli.print.header=true; 

5.map和reducer个数控制

---MR-map控制个数:
set mapred.max.split.size=128000000 --128M新版本通过此参数控制map个数
set mapred.min.split.size.per.node=8000000;
set mapred.min.split.size.per.rack=8000000;
---设置tez的map大小
set tez.grouping.min-size = 128000000; --最小128M,合并map端小文件
set tez.grouping.max-size = 128000000; --最大128M,可增加处理Map数量
---reducer设置:
set hive.exec.reducers.bytes.per.reducer = 128000000;--设置reducer处理大小
set hive.exec.reducers.max = 999;--设置最大reducer个数

6.设置队列名和作业名

set mapred/tez.job.queue.name=xxx;
set mapred.job.name=xxxx;

7.hive 列选择

---hive中不选择最后一列
set hive.support.quoted.identifiers=none;
SELECT `(inc_day)?+.+` FROM tbl_name limit 1;

8.日志信息中打印出统计信息

set hive.tez.exec.print.summary=true;

9.常用的数据倾斜设置

set hive.groupby.skewindata=true;
set hive.map.aggr = true;
set hive.groupby.mapaggr.checkinterval =100000;
 
set hive.optimize.skewjoin=true;
set hive.skewjoin.key=100000;

10.hive增加动态分区数量

set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=2000;

11.更新表的统计信息

ANALYZE TABLE xxxx PARTITION(inc_day='20181031') COMPUTE STATISTICS;

12.mapjoin
亲测map join在大表join小表的时候十分有用,小表的大表由参数hive.mapjoin.smalltable.filesize来决定,该参数表示小表的总大小,默认值,即25M。
Hive0.7之前,需要使用hint提示 /*+ mapjoin(table) */才会执行MapJoin,否则执行Common Join,但在0.7版本之后,默认自动会转换Map Join,由参数hive.auto.convert.join来控制,默认为true.
假设a表为一张大表,b为小表,并且hive.auto.convert.join=true,那么Hive在执行时候会自动转化为MapJoin。

set hive.auto.convert.join=true

你可能感兴趣的:(hive进阶宝典一——hive常用参数设置)