Hive常用参数

Posted 坤岭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive常用参数相关的知识,希望对你有一定的参考价值。

 

属性名称实践中文默认值作用中文含义
mapreduce.job.queuenameroot.default作业提交到的队列
hive.execution.enginetez默认值:mr(在Hive 2.0.0中已弃用)
添加到:Hive 0.13.0,包含Hive -6103和Hive -6098
选择执行引擎。选项有:mr (Map Reduce,默认),tez (tez执行,仅适用于Hadoop 2),或spark (spark执行,适用于Hive 1.1.0以后)。
由于历史原因,mr仍然是默认引擎,它本身也是一个历史引擎,在Hive 2线(Hive -12300)中被弃用。它可能会被删除而无需进一步警告。
hive.auto.convert.joinTRUE默认值:0.7.0 ~ 0.10.0为false;在0.11.0及更高版本(HIVE-3297)为true
加入:0.7.0与HIVE-1642
大表关联小表,把小表自动加载到内存中,需要确认以下配置为true,相当于写了一个mapjoin
作用:是否自动转换为mapjoin
Hive是否开启基于输入文件大小的common join转换为mapjoin的优化。(注意hive-default.xml。在Hive 0.11.0到0.13.1中,template错误地将默认值设为false。
hive.smalltable.filesize or hive.mapjoin.smalltable.filesize25000000默认值:25000000
添加到:Hive 0.7.0 with Hive -1642: Hive .smalltable.filesize(在Hive 0.8.1中被Hive .mapjoin.smalltable.filesize取代)
添加到:Hive 0.8.1 with Hive -2499: Hive .mapjoin.smalltable.filesize
小表的最大文件大小,默认为25000000,即25M
(默认25M一下认为是小表)
小表的输入文件大小阈值(以字节为单位);如果文件大小小于此阈值,它将尝试将普通连接转换为映射连接。
hive.auto.convert.join.noconditionaltaskTRUE默认值:true
添加到:0.11.0与HIVE-3784(默认更改为true与HIVE-4146)
是否将多个mapjoin合并为一个Hive是否开启基于输入文件大小的common join转换为mapjoin的优化。如果该参数是打开的,那么n-1个表/分区的大小之和小于hive.auto.convert.join.noconditionaltask指定的大小。连接将直接转换为mapjoin(没有条件任务)。
hive.auto.convert.join.noconditionaltask.size10000000默认值:10000000
加入:0.11.0与HIVE-3784
多个mapjoin转换为1个时,所有小表的文件大小总和的最大值。如果hive.auto.convert.join.noconditionaltask关闭,则此参数不生效。但是,如果它是打开的,并且n-way连接的n-1个表/分区的大小之和小于此大小,则连接将直接转换为mapjoin(没有条件任务)。默认值是10MB。
hive.exec.parallelTRUE默认值:false
添加到:Hive 0.5.0
控制在同一个sql中的不同的job是否可以同时运行,默认为false.是否并行执行作业。适用于可以并行运行的MapReduce作业,例如在连接之前处理不同源表的作业。在Hive 0.14中,它也适用于可以并行运行的移动任务,例如在多插入过程中移动文件以插入目标。
hive.merge.mapfilesTRUE默认值:true
添加到:Hive 0.4.0
默认值ture,在Map-only的任务结束时合并小文件在仅映射作业结束时合并小文件。
hive.merge.size.per.task256000000默认值:256000000
添加到:Hive 0.4.0
作业结束时合并文件的大小,默认256MB作业结束时合并文件的大小。
hive.merge.smallfiles.avgsize256000000(256M)默认值:16000000
添加到:Hive 0.5.0
如果一个 job 结束后,生成的文件的平均大小 小于参数
hive.merge.smallfiles.avgsize 设定的值,则认为是小文件
平均文件大小,是决定是否执行合并操作的阈值,默认16000000
当一个作业的平均输出文件大小小于这个数字时,Hive将启动一个额外的map-reduce作业,将输出文件合并为更大的文件。如果hive.merge.mapfiles为真,这只会用于仅映射作业,如果hive.merge.mapredfiles为真,这只会用于map-reduce作业。
hive.map.aggrTRUE默认值:Hive 0.3及以上版本为true;Hive 0.2为false
添加到:Hive 0.2.0
是否在 Map 端进行聚合,默认为 True ;该设置会消耗更多的内存Hive Group By查询中是否使用映射端聚合。
hive.groupby.skewindataTRUE默认值:false
添加到:Hive 0.3.0
如果大表和大表进行join操作,则可采用skewjoin
当 hive.groupby.skewindata = true 时,Hive 会将原来的一个 MaReduce 阶段转化成两个 MapReduce 阶段:
一阶段MapReduce:随机打散数据,打散后进行局部聚合(数据去重 +
多Task局部计数)
二阶段MapReduce:对一阶段的局部聚合结果进行最终聚合(最终汇总计数)
数据中是否存在倾斜,需要通过查询来优化组。
hive.groupby.mapaggr.checkinterval100000默认值:100000
添加到:Hive 0.3.0
控制在 Map 端进行聚合操作的条目数目执行分组键/聚合类大小的行数。
hive.optimize.skewjoinTRUE默认值:false
添加到:Hive 0.6.0
在参数 hive.optimize.skewjoin=true 时, Hive的reduce任务会在处理join key 的时候
判断其数量是否大于该 阈值,如果是将作为一个Skew Join 处理
不超过hive.skewjoin.key的key,走正常join流程
超过的hive.skewjoin.key的key,先写到hdfs上,然后再启动一个join,执行map join
是否启用倾斜连接优化。(参见hive.optimize.skewjoin.compiletime)
hive.skewjoin.key100000默认值:100000
添加到:Hive 0.6.0
确定连接中是否有倾斜键。如果在连接操作符中看到具有相同键的行数超过指定数目,则认为该键为倾斜连接键。
hive.exec.compress.outputTRUE默认值:false
添加于:Hive 0.2.0
用户可以对最终生成的Hive表的数据压缩。该参数控制这一功能的激活与禁用,设置为true来声明将结果文件进行压缩这控制是否压缩查询的最终输出(到本地/hdfs 文件或 Hive 表)。压缩编解码器和其他选项由 Hadoop 配置变量 mapred.output.compress* 确定。
hive.support.quoted.identifiersNone默认值: column
添加于:带有HIVE-6013 的Hive 0.13.0
使用正则表达式查询是否使用带引号的标识符。值可以是“ none”或“ column”。
column: 列名可以包含任何 Unicode 字符。在反引号 ( ) 内指定的任何列名都按`字面意思处理。在反引号字符串中,使用双反引号 ( ``) 表示反引号字符。
none: 只有字母数字和下划线字符在标识符中有效。带反引号的名称被解释为正则表达式。这也是 0.13.0 之前的版本中的行为。
hive.exec.dynamic.partition.modenonstrict默认值:strict
添加于:Hive 0.6.0
设置动态分区   ,分区模式设置在strict模式下,用户必须至少指定一个静态分区,以防用户不小心覆盖所有分区。在n 模式下,所有分区都 可以是动态的。nonstrict
设置为 nonstrict支持INSERT ... VALUES、UPDATE 和 DELETE 事务(Hive 0.14.0 及更高版本)。有关打开 Hive 事务所需参数的完整列表,请参阅 hive.txn.manager。
hive.exec.max.dynamic.partitions.pernode100000默认值:100
添加于:Hive 0.6.0
 
单个节点上的mapper/reducer允许创建的最大分区每个 mapper/reducer 节点中允许创建的最大动态分区数。
hive.exec.max.dynamic.partitions10000默认值:1000
添加于:Hive 0.6.0
 
允许动态分区的最大数量总共允许创建的最大动态分区数。
hive.input.formatorg.apache.hadoop.hive.ql.io.CombineHiveInputFormat默认值: org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
添加于:Hive 0.5.0
会对 map 端的小文件进行合并默认输入格式。如果您遇到 CombineHiveInputFormat 问题,请将其设置为 HiveInputFormat。
hive.merge.mapredfiles默认值:false
添加于:Hive 0.4.0
在map-reduce job后合并文件,默认false在map-reduce作业结束时合并小文件。

以上是关于Hive常用参数的主要内容,如果未能解决你的问题,请参考以下文章

Hive设置配置参数的方法,列举8个常用配置

[Hive_add_8] Hive 常用参数配置

Hive常用参数

hive常用参数配置设置

hive小文件合并设置参数

大数据:Hive常用参数调优