Hive配置属性
- Hive配置属性
- HCatalog配置属性
- WebHCat配置属性
本文档描述了Hive用户配置属性(有时称为参数,变量或选项),并说明了哪些版本引入了新属性。
规范的配置属性列表在HiveConf
Java类中进行管理,因此请参阅该HiveConf.java
文件以获取Hive版本中可用的配置属性的完整列表。
有关如何使用这些配置属性的信息,请参阅配置Hive。该文档还描述了在“ 配置变量”部分中设置Hive的管理配置属性。Hive Metastore Administration描述了Metastore的其他配置属性。
版本信息
从Hive 0.14.0(HIVE-7211 )开始,配置名称以“hive”开头。被视为Hive系统属性。使用hive.conf.validation选项为true(默认值)时,任何尝试设置以“hive”开头的配置属性。未注册到Hive系统的将抛出异常。
查询和DDL执行
hive.execution.engine
选择执行引擎。选项包括:( mr
Map Reduce,默认),tez
(Tez执行,仅适用于Hadoop 2),或spark
(Spark执行,适用于Hive 1.1.0以后)。
虽然mr
由于历史原因仍然是默认引擎,但它本身就是一个历史引擎,并且在Hive 2系列(HIVE-12300)中被弃用。它可以在没有进一步警告的情
见蜂箱TEZ和蜂箱星火获取更多信息,并看到TEZ部分和火花部的配置属性如下。
hive.execution.mode
- 选择查询片段是在容器中还是在llap中运行
- 默认值:
container
- 有效设置
- 容器:发射容器
- llap:在执行任务期间利用llap节点
- 添加In:Hive 2.0 with HIVE-9460
mapred.reduce.tasks
- 默认值:
-1
- 添加In:Hive 0.1.0
每个作业的默认减少任务数。通常设置为接近可用主机数的素数。当mapred.job.tracker为“local”时忽略。Hadoop默认将此值设置为1,而Hive使用-1作为其默认值。通过将此属性设置为-1,Hive将自动确定减少器的数量。
hive.exec.reducers.bytes.per.reducer
- 默认值:
1,000,000,000
Hive 0.14.0之前; Hive 0.14.0及更高版本中的 256 MB(256,000,000
) - 添加In:Hive 0.2.0; 使用HIVE-7158 (和 HIVE-7917),默认值更改为0.14.0
每个减速机的尺寸。Hive 0.14.0及更早版本中的默认值为1 GB,即如果输入大小为10 GB,则将使用10个reducer。在Hive 0.14.0及更高版本中,默认值为256 MB,即如果输入大小为1 GB,则将使用4个reducer。
hive.exec.reducers.max
将使用的最大减速器数。如果配置属性mapred.reduce.tasks中指定的值为负数,则Hive将在自动确定reducer数量时将其用作reducers的最大数量。
hive.jar.path
- 默认值:(空)
- 添加In:Hive 0.2.0或更早版本
在单独的jvm中提交作业时使用的hive_cli.jar的位置。
hive.aux.jars.path
- 默认值:(空)
- 添加In:Hive 0.2.0或更早版本
包含用户定义函数(UDF)和SerDes实现的插件jar的位置。
hive.reloadable.aux.jars.path
- 默认值:(空)
- 添加In:Hive 0.14.0 with HIVE-7553
插件罐的位置,可以是逗号分隔的文件夹或罐子。可以通过执行Beeline重新加载命令来更新(添加,删除或更新)它们, 而无需重新启动HiveServer2。这些jar可以 像hive.aux.jars.path中的辅助类一样 用于创建UDF或SerDes。
hive.exec.scratchdir
- 默认值:
/tmp/${user.name
}在Hive 0.2.0到0.8.0;/tmp/hive-${user.name
在Hive 0.8.1到0.14.0; 或者/tmp/hive
在Hive 0.14.0及更高版本中 - 添加In:Hive 0.2.0; 使用HIVE-6847和HIVE-8143,默认值在0.8.1和0.14.0中更改
Hive作业的划痕空间。Hive使用此目录存储查询的不同map / reduce阶段的计划,以及存储这些阶段的中间输出。
Hive 0.14.0及更高版本: Hive作业的HDFS根目录目录,使用write all(733)权限创建。 对于每个连接用户,HDFS暂存目录$ { hive.exec.scratchdir },创建/ <用户名> 使用$ { hive.scratch.dir.permission }。
另请参阅 hive.start.cleanup.scratchdir 和hive.scratchdir.lock。在本地模式下运行Hive时,请参阅 hive.exec.local.scratchdir。
hive.scratch.dir.permission
- 默认值:
700
- 添加In:Hive 0.12.0 with HIVE-4487
在根暂存目录中创建的特定于用户的临时目录的权限。(参见hive.exec.scratchdir。)
hive.exec.local.scratchdir
- 默认值:
/tmp/${user.name
} - 添加In:Hive 0.10.0 with HIVE-1577
当Hive以本地模式运行时,Hive作业的临时空间。另请参阅hive.exec.scratchdir。
hive.hadoop.supports.splittable.combineinputformat
- 默认值:
false
- 添加In:Hive 0.6.0 with HIVE-1280
- 删除:Hive 2.0.0与HIVE-11376
是否组合小输入文件以便生成更少的映射器。
hive.map.aggr
- 默认值:
true
在Hive 0.3及更高版本中;false
在Hive 0.2 - 添加In:Hive 0.2.0
是否在Hive Group By查询中使用映射端聚合。
hive.groupby.skewindata
- 默认值:
false
- 添加In:Hive 0.3.0
是否存在数据偏差以通过查询优化组。
hive.groupby.mapaggr.checkinterval
- 默认值:
100000
- 添加In:Hive 0.3.0
执行分组键/聚合类大小的行数。
hive.new.job.grouping.set.cardinality
- 默认值:
30
- 添加In:Hive 0.11.0 with HIVE-3552
是否应启动新的map-reduce作业以对集合/汇总/多维数据集进行分组。
对于像“选择a,b,c,从T组中计数(1)a,b,c和汇总一样的查询;” 每行创建四行:(a,b,c),(a,b,null),(a,null,null),(null,null,null)。如果T的基数非常高,这可能导致地图缩小边界爆炸,并且地图侧聚合不能很好地完成。
此参数决定Hive是否应添加其他map-reduce作业。如果分组集基数(上例中的4)大于此值,则在假设原始“分组依据”将减小数据大小的情况下添加新的MR作业。
hive.mapred.local.mem
- 默认值:
0
- 添加In:Hive 0.3.0
对于本地模式,映射器/缩减器的内存。
hive.map.aggr.hash.force.flush.memory.threshold
- 默认值:
0.9
- 添加于:Hive 0.7.0 with HIVE-1830
映射端组聚合哈希表使用的最大内存。如果内存使用率高于此数字,则强制刷新数据。
hive.map.aggr.hash.percentmemory
- 默认值:
0.5
- 添加In:Hive 0.2.0
映射端组聚合哈希表使用的总内存的一部分。
hive.map.aggr.hash.min.reduction
- 默认值:
0.5
- 添加In:Hive 0.4.0
如果哈希表大小和输入行之间的比率大于此数字,则将关闭哈希聚合。设置为1以确保永远不会关闭散列聚合。
hive.optimize.groupby
- 默认值:
true
- 添加In:Hive 0.5.0
是否从分区分区/表中启用分段组。
hive.optimize.countdistinct
- 默认值:
true
- 添加In:Hive 3.0.0 with HIVE-16654
是否将重复计数分为2个阶段,即第一阶段使用带有count distinct键的多个reducer,第二阶段使用没有key的单个reducer。
hive.optimize.remove.sq_count_check
- 默认值:
false
-
添加In:Hive 3.0.0 with HIVE-16793
是否使用sq_count_check UDF为具有常量分组键的标量子查询删除额外连接。
hive.multigroupby.singlemr
- 默认值:
false
- 添加于:Hive 0.8.0与HIVE-2056
- 删除:HIVE-2621的 Hive 0.9.0 (参见hive.multigroupby.singlereducer)
是否通过查询优化多组以生成单个M / R作业计划。如果按查询的多组具有共同的按键分组,则将对其进行优化以生成单个M / R作业。(在0.9.0版中删除了此配置属性。)
hive.multigroupby.singlereducer
- 默认值:
true
- 添加In:Hive 0.9.0 with HIVE-2621
是否通过查询优化多组以生成单个M / R作业计划。如果按查询的多组具有共同的按键分组,则将对其进行优化以生成单个M / R作业。
hive.optimize.cp
是否启用列修剪器。(此版本的配置属性已在版本0.13.0中删除。)
hive.optimize.index.filter
- 默认值:
false
- 添加In:Hive 0.8.0 with HIVE-1644
是否启用自动使用索引。
注意:有关与Hive索引相关的更多配置属性,请参阅索引。
hive.optimize.ppd
是否启用谓词下推(PPD)。
注意:打开 hive.optimize.index.filter以使用PPD的文件格式特定索引。
hive.optimize.ppd.storage
- 默认值:
true
- 添加In:Hive 0.7.0
是否将谓词推送到存储处理程序。hive.optimize.ppd为false时忽略。
蜂巢。ppd.remove.duplicatefilters
- 默认值:
true
- 添加In:Hive 0.8.0
在查询优化期间,可以在运算符树中下推过滤器。如果此配置为true,则仅按下过滤器保留在运算符树中,并删除原始过滤器。如果此配置为false,则原始过滤器也会保留在原始位置的运算符树中。
hive.ppd.recognizetransivity
- 默认值:
true
- 添加In:Hive 0.8.1
是否在equijoin条件下传递复制谓词过滤器。
hive.join.emit.interval
- 默认值:
1000
- 添加In:Hive 0.2.0
在
发出连接结果之前,最右边的连接操作数Hive应该缓冲多少行。
hive.join.cache.size
- 默认值:
25000
- 添加In:Hive 0.5.0
连接表中的行数(流表除外)
应该缓存在内存中。
hive.mapjoin.bucket.cache.size
- 默认值:
100
- 添加In:Hive 0.5.0(由Hive 0.12.0中的hive.smbjoin.cache.rows取代 )
映射连接表中每个键中的值应该缓存在内存中。
hive.mapjoin.followby.map.aggr.hash.percentmemory
- 默认值:
0.3
- 添加于:Hive 0.7.0 with HIVE-1830
映射端组聚合哈希表使用的总内存部分,当此组依次为map join时。
hive.smalltable.filesize 或 hive.mapjoin.smalltable.filesize
- 默认值:
25000000
- 添加In:Hive 0.7.0 with HIVE-1642:hive.smalltable.filesize(由Hive 0.8.1中的hive.mapjoin.smalltable.filesize取代)
- 添加In:Hive 0.8.1 with HIVE-2499:hive.mapjoin.smalltable.filesize
小表的输入文件大小的阈值(以字节为单位); 如果文件大小小于此阈值,它将尝试将公共连接转换为地图连接。
hive.mapjoin.localtask.max.memory.usage
此数字表示本地任务可以将键/值保存到内存中哈希表中的内存量。如果本地任务的内存使用量超过此数量,则将中止本地任务。这意味着小表的数据太大而无法保存在内存中。
hive.mapjoin.followby.gby.localtask.max.memory.usage
- 默认值:
0.55
- 添加于:Hive 0.7.0 with HIVE-1830
此数字表示当此映射连接后跟一个group by时,本地任务可以将键/值保存到内存中哈希表中的内存量 。如果本地任务的内存使用量超过此数量, 则本地任务将自行中止。这意味着小表的数据太大而无法保存在内存中。
hive.mapjoin.check.memory.rows
该数字表示在处理了多少行后需要检查内存使用情况。
hive.ignore.mapjoin.hint
- 默认值:
true
- 添加In:Hive 0.11.0与 HIVE-4042
Hive是否忽略mapjoin提示。
hive.smbjoin.cache.rows
- 默认值:
10000
- 添加In:Hive 0.12.0 with HIVE-4440(替换hive.mapjoin.bucket.cache.size)
应该在每个sort-merge-bucket连接表的内存中缓存具有相同键值的行数。
hive.mapjoin.optimized.keys
MapJoin哈希表是否应使用优化(大小方式)键,允许表占用更少的内存。根据密钥,整个表的内存节省可以是5-15%左右。
hive.mapjoin.optimized.hashtable
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-6430
Hive是否应该为MapJoin使用内存优化的哈希表。仅适用于Tez 和Spark,因为内存优化的哈希表无法序列化。(从Hive 1.3.0开始支持Spark,HIVE-11180。)
hive.mapjoin.optimized.hashtable.wbsize
- 默认值:
10485760 (10 * 1024 * 1024)
- 添加In:Hive 0.14.0 with HIVE-6430
优化的哈希表(请参阅hive.mapjoin.optimized.hashtable)使用一系列缓冲区来存储数据。这是一个缓冲区大小。如果Hashtable较大,则Hashtable可能稍快一些,但对于小连接,将分配不必要的内存,然后进行修剪。
hive.mapjoin.lazy.hashtable
MapJoin哈希表是否应按需反序列化值。根据连接实际触摸的表中的值的数量,它可以通过不为不需要的行创建对象来节省大量内存。如果需要所有行,显然没有收益。
hive.hashtable.initialCapacity
- 默认值:
100000
- 添加In:Hive 0.7.0 with HIVE-1642
如果缺少统计信息,或者hive.hashtable.key.count.adjustment设置为0 ,则为mapjoin哈希表的初始容量。
hive.hashtable.key.count.adjustment
- 默认值:
1.0
- 添加In:Hive 0.14.0与HIVE-7616
调整从表和列统计信息派生的mapjoin哈希表大小; 密钥数的估计值除以该值。如果该值为0,统计不使用 和hive.hashtable.initialCapacity来代替。
hive.hashtable.loadfactor
- 默认值:
0.75
- 添加In:Hive 0.7.0 with HIVE-1642
在Mapjoin的过程中,键/值将保存在哈希表中。此值表示内存中哈希表的加载因子。
hive.debug.localtask
- 默认值:
false
- 添加In:Hive 0.7.0 with HIVE-1642
hive.outerjoin.supports.filters
- 默认值:
true
- 添加In:Hive 0.7.0 with HIVE-1534
- 删除:Hive 2.2.0 with HIVE-14522
hive.optimize.skewjoin
- 默认值:
false
- 添加In:Hive 0.6.0
是否启用倾斜连接优化。(另见hive.optimize.skewjoin.compiletime。)
hive.skewjoin.key
- 默认值:
100000
- 添加In:Hive 0.6.0
确定我们是否在连接中获得了一个倾斜键。如果我们在join运算符中看到的键数超过指定的行数,我们认为该键是一个倾斜连接键。
hive.skewjoin.mapjoin.map.tasks
- 默认值:
10000
- 添加In:Hive 0.6.0
确定倾斜连接的后续地图连接作业中使用的地图任务的数量。它应该与hive.skewjoin.mapjoin.min.split一起使用来执行细粒度控制。
hive.skewjoin.mapjoin.min.split
- 默认值:
33554432
- 添加In:Hive 0.6.0
通过指定最小拆分大小,确定倾斜连接的后续映射连接作业中最多使用的映射任务的数量。它应与hive.skewjoin.mapjoin.map.tasks一起使用以执行细粒度控制。
hive.optimize.skewjoin.compiletime
- 默认值:
false
- 添加In:Hive 0.10.0
是否为连接中的表的倾斜键创建单独的计划。这基于存储在元数据中的倾斜键。在编译时,计划被分成不同的连接:一个用于倾斜的键,另一个用于其余的键。然后,为上面生成的两个连接执行联合。因此,除非两个连接表中都存在相同的倾斜键,否则倾斜键的连接将作为地图侧连接执行。
此参数与hive.optimize.skewjoin之间的主要区别在于此参数使用存储在Metastore中的偏斜信息在编译时自行优化计划。如果元数据中没有偏斜信息,则此参数不起任何作用。
无论hive.optimize.skewjoin.compiletime和hive.optimize.skewjoin应设置为true。(理想情况下,hive.optimize.skewjoin应重命名为hive.optimize.skewjoin.runtime,但为了向后兼容性尚未完成。)
如果倾斜信息正确存储在元数据中,hive.optimize.skewjoin.compiletime 将更改查询计划以处理它,而hive.optimize.skewjoin将是一个无操作。
hive.optimize.union.remove
- 默认值:
false
- 添加In:Hive 0.10.0 with HIVE-3276
是否删除联合并在联合和联合上面的文件链接之间推送运算符。这样可以避免通过union进行额外的输出扫描。这对于联合查询是独立有用的,尤其在hive.optimize.skewjoin.compiletime设置为true 时非常有用,因为插入了额外的联合。
如果hive.merge.mapfiles或hive.merge.mapredfiles中的任何一个设置为true ,则会触发合并。如果用户已将hive.merge.mapfiles设置为true并将hive.merge.mapredfiles设置为false,则认为reducers的数量很少,因此无论如何文件数量都很小。但是,通过这种优化,我们可能会大幅增加文件数量。所以,我们积极合并。
hive.mapred.supports.subdirectories
- 默认值:
false
- 添加In:Hive 0.10.0 with HIVE-3276
正在运行的Hadoop版本是否支持表/分区的子目录。如果Hadoop版本支持表/分区的子目录,则可以应用许多Hive优化。MAPREDUCE-1501添加了此支持。
hive.mapred.mode
- 默认值:
- Hive 0.x:
nonstrict
- Hive 1.x:
nonstrict
- Hive 2.x:
strict
(HIVE-12413)
- Hive 0.x:
- 添加In:Hive 0.3.0
正在执行Hive操作的模式。在strict
模式下,不允许运行某些有风险的查询。例如,防止全表扫描(参见 HIVE-10454), ORDER BY需要LIMIT子句。
hive.exec.script.maxerrsize
- 默认值:
100000
- 添加In:Hive 0.2.0
允许脚本发送到标准错误的最大字节数(每个map-reduce任务)。这可以防止失控脚本将日志分区填充到容量中。
hive.script.auto.progress
- 默认值:
false
- 添加In:Hive 0.4.0
Hive Tranform / Map / Reduce子句是否应该自动将进度信息发送到TaskTracker,以避免任务因不活动而被杀死。当脚本输出到stderr时,Hive会发送进度信息。此选项无需定期生成stderr消息,但用户应谨慎,因为这可能会阻止脚本中的无限循环被TaskTracker杀死。
hive.exec.script.allow.partial.consumption
- 默认值:
false
- 添加In:Hive 0.5.0
启用后,此选项允许用户脚本成功退出,而不会消耗标准输入中的所有数据。
hive.script.operator.id.env.var
- 默认值:
HIVE_SCRIPT_OPERATOR_ID
- 添加In:Hive 0.5.0
在用户的转换函数(用户在查询中指定的自定义映射器/缩减器)中保存唯一脚本操作员ID的环境变量的名称。
hive.script.operator.env.blacklist
- 默认值:
hive.txn.valid.txns,hive.script.operator.env.blacklist
- 添加In:Hive 0.14.0 with HIVE-8341
默认情况下,HiveConf对象中的所有值都将转换为与键同名的环境变量(将'。'(点)转换为'_'(下划线))并设置为脚本运算符环境的一部分。但是,某些值可能会变大或无法转换为环境变量。此值提供以逗号分隔的配置值列表,这些配置值在调用脚本运算符时不会在环境中设置。默认情况下,排除有效事务列表,因为它可能会变大并且有时会被压缩,这不能很好地转换为环境变量。
另见:
- SerDes for more hive.script。*配置属性
hive.exec.compress.output
- 默认值:
false
- 添加In:Hive 0.2.0
它控制是否压缩查询的最终输出(到本地/ hdfs文件或Hive表)。压缩编解码器和其他选项由Hadoop配置变量mapred.output.compress *确定。
hive.exec.compress.intermediate
- 默认值:
false
- 添加In:Hive 0.2.0
这可以控制Hive在多个map-reduce作业之间生成的中间文件是否被压缩。压缩编解码器和其他选项由Hadoop配置变量mapred.output.compress *确定。
hive.exec.parallel
- 默认值:
false
- 添加In:Hive 0.5.0
是否并行执行作业。适用于可以并行运行的MapReduce作业,例如在连接之前处理不同源表的作业。 从Hive 0.14开始,也适用于移动可以并行运行的任务,例如移动文件以在多插入期间插入目标。
hive.exec.parallel.thread.number
- 默认值:
8
- 添加In:Hive 0.6.0
最多可以并行执行多少个作业。
hive.exec.rowoffset
- 默认值:
false
- 添加In:Hive 0.8.0
是否提供行偏移虚拟列。
hive.task.progress
- 默认值:
false
- 添加In:Hive 0.5.0
- 删除:Hive 0.13.0与 HIVE-4518
Hive是否应在执行期间定期更新任务进度计数器。启用此功能可以在作业跟踪器中更紧密地监视任务进度,但可能会降低性能。对于hive.exec.dynamic.partition设置为true的作业,此标志自动设置为true。(此版本的配置属性已在版本0.13.0中删除。)
hive.counters.group.name
- 默认值:
HIVE
- 添加In:Hive 0.13.0 with HIVE-4518
查询执行期间使用的计数器的计数器组名称。计数器组用于内部Hive变量(CREATED_FILE,FATAL_ERROR等)。
hive.exec.pre.hooks
- 默认值:(空)
- 添加In:Hive 0.4.0
以逗号分隔的每个语句要调用的预执行挂钩列表。预执行挂钩被指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。
hive.exec.post.hooks
- 默认值:(空)
- 添加In:Hive 0.5.0
以逗号分隔的每个语句要调用的执行后挂钩列表。执行后挂钩被指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。
hive.exec.failure.hooks
- 默认值:(空)
- 添加In:Hive 0.8.0
以逗号分隔的每个语句要调用的失败挂钩列表。将on-failure钩子指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。
hive.merge.mapfiles
- 默认值:
true
- 添加In:Hive 0.4.0
在仅限地图的作业结束时合并小文件。
hive.merge.mapredfiles
- 默认值:
false
- 添加In:Hive 0.4.0
在map-reduce作业结束时合并小文件。
hive.mergejob.maponly
- 默认值:
true
- 添加In:Hive 0.6.0
- 删除:Hive 0.11.0
如果支持CombineHiveInputFormat,请尝试生成用于合并文件的仅映射作业。(此版本的配置属性已在版本0.11.0中删除。)
hive.merge.size.per.task
- 默认值:
256000000
- 添加In:Hive 0.4.0
作业结束时合并文件的大小。
hive.merge.smallfiles.avgsize
- 默认值:
16000000
- 添加In:Hive 0.5.0
当作业的平均输出文件大小小于此数量时,Hive将启动另一个map-reduce作业,以将输出文件合并为更大的文件。如果hive.merge.mapfiles为true,则仅对仅地图作业执行此操作;对于hive.merge.mapredfiles为true,仅对map-reduce作业执行此操作。
hive.heartbeat.interval
- 默认值:
1000
- 添加In:Hive 0.4.0
在此间隔后发送心跳 - 由mapjoin和过滤器运算符使用。
hive.auto.convert.join
Hive是否支持基于输入文件大小将公共连接转换为mapjoin的优化。(请注意,hive-default.xml.template在Hive 0.11.0到0.13.1中错误地将默认值设置为false。)
hive.auto.convert.join.noconditionaltask
Hive是否支持基于输入文件大小将公共连接转换为mapjoin的优化。如果启用此参数,并且n路连接的表/分区的n-1的大小总和小于hive.auto.convert.join.noconditionaltask.size指定的大小,则直接转换连接到mapjoin(没有条件任务)。
hive.auto.convert.join.noconditionaltask.size
- 默认值:
10000000
- 添加于:0.11.0与 HIVE-3784
如果禁用hive.auto.convert.join.noconditionaltask,则此参数不会生效。但是,如果它打开,并且n路连接的表/分区的n-1的大小总和小于此大小,则连接将直接转换为mapjoin(没有条件任务)。默认值为10MB。
hive.auto.convert.join.use.nonstaged
对于条件连接,如果来自小别名的输入流可以直接应用于连接运算符而不进行过滤或投影,则别名不需要通过映射本地任务在分布式缓存中预先准备。目前,这不适用于矢量化或Tez执行引擎。
hive.merge.nway.joins
- 默认值:
true
- 添加于:2.2.0与 HIVE-15655
对于相同条件下的多个连接,将连接合并到一个连接运算符中。这在大型混洗连接的情况下是有用的,以避免重新洗牌阶段。在Tez中禁用此功能通常会在左外连接或一般Snowflake架构的情况下提供更快的连接算法。
hive.udtf.auto.progress
- 默认值:
false
- 添加In:Hive 0.5.0
Hive是否应该在使用UDTF时自动将进度信息发送到TaskTracker,以防止任务因不活动而被杀死。用户应该谨慎,因为这可能会阻止TaskTracker使用无限循环杀死任务。
hive.mapred.reduce.tasks.speculative.execution
- 默认值:
true
- 添加In:Hive 0.5.0
是否应该启用减速器的推测执行。
hive.exec.counters.pull.interval
- 默认值:
1000
- 添加In:Hive 0.6.0
轮询JobTracker以计算正在运行的作业的时间间隔。它越小,在jobtracker上的负载就越多,捕获的粒度就越小。
hive.enforce.bucketing
- 默认值:
- Hive 0.x:
false
- Hive 1.x:
false
- Hive 2.x:删除,这有效地使它始终为真(HIVE-12331)
- Hive 0.x:
- 添加In:Hive 0.6.0
是否强制执行分组。如果true
在插入表格时强制执行分组。
设置为 true
支持 Hive 0.14.0和1.xx中的INSERT ... VALUES,UPDATE和DELETE事务有关打开Hive事务所需的参数的完整列表,请参阅 hive.txn.manager。
hive.enforce.sorting
- 默认值:
- Hive 0.x:
false
- Hive 1.x:
false
- Hive 2.x:删除,这有效地使它始终为真(HIVE-12331)
- Hive 0.x:
- 添加In:Hive 0.6.0
是否强制执行排序。如果为true,则在插入表时,将强制执行排序。
hive.optimize.bucketingsorting
- 默认值:
true
- 添加In:Hive 0.11.0与HIVE-4240
如果hive.enforce.bucketing或hive.enforce.sorting为true,则不要创建一个reducer来对表单的查询强制执行bucketing / sorting:
insert overwrite table T2 select * from T1;
其中T1和T2由相同的密钥分块/排序到相同数量的桶中。(在Hive 2.0.0及更高版本中,此参数不依赖于hive.enforce.bucketing 或 hive.enforce.sorting。)
hive.optimize.reducededuplication
- 默认值:
true
- 添加In:Hive 0.6.0
如果数据已经由需要再次使用的相同密钥聚类,则删除额外的map-reduce作业。应始终将其设置为true。由于它是一项新功能,因此可以进行配置。
hive.optimize.reducededuplication.min.reducer
- 默认值:
4
- 添加In:Hive 0.11.0与HIVE-2340
通过将子RS的key / parts / reducer-num移动到父RS,减少重复数据删除合并两个RS(减少宿操作符)。这意味着如果子RS的reducer-num是固定的(按顺序或强制分组)并且很小,它可以使非常慢的单个MR。如果减速器的数量小于指定值,则将禁用优化。
hive.optimize.correlation
- 默认值:
false
- 添加In:Hive 0.12.0 with HIVE-2206
利用查询内相关性。有关详细信息,请参阅Correlation Optimizer设计文档。
hive.optimize.limittranspose
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-11684,由HIVE-11775修改
是否通过左/右外连接或联合推动限制。如果值为true且外部输入的大小足够小(如hive.optimize.limittranspose.reductionpercentage和hive.optimize.limittranspose.reductiontuples中所指定),则将限制推送到外部输入或联合; 为了保持语义正确,限制保持在联接或联合之上。
hive.optimize.limittranspose.reductionpercentage
- 默认值:
1.0
- 添加In:Hive 2.0.0 with HIVE-11684,由HIVE-11775修改
当hive.optimize.limittranspose为true时,此变量指定优化程序为应用规则而应获取的联合或输入的外部输入大小的最小百分比(小数)减少。
hive.optimize.limittranspose.reductiontuples
- 默认值:
0
- 添加In:Hive 2.0.0 with HIVE-11684,由HIVE-11775修改
当hive.optimize.limittranspose为true时,此变量指定优化程序为应用规则而应获取的联接或输入的外部输入的元组数量的最小减少量。
hive.optimize.filter.stats.reduction
- 默认值:
false
- 添加In:Hive 2.1.0 with HIVE-13269
是否使用列统计信息简化过滤器运算符中的比较表达式。
hive.optimize.sort.dynamic.partition
启用后,动态分区列将进行全局排序。这样我们只能为reducer中的每个分区值保持一个记录编写器打开,从而减少减速器的内存压力。
hive.cbo.enable
如果为true,则将启用使用Calcite框架的基于成本的优化程序。
hive.cbo.returnpath.hiveop
如果为true,则对CBO逻辑计划的此优化将添加规则以在连接键上引入非空过滤。控制Calcite计划到Hive运算符转换。设置为false时覆盖hive.optimize.remove.identity.project。
hive.cbo。cnf.maxnodes
- 默认值:
-1
- 添加于:Hive 2.1.1与HIVE-14021
转换为合取范式(CNF)时,如果表达式超过指定的阈值,则失败; 阈值以节点数(叶子和内部节点)表示。默认值-1不会设置阈值。
hive.optimize.null.scan
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7385
如果为true,则此优化将尝试不扫描表中的任何行,这些行可以在查询编译时确定不生成任何行(例如,其中1 = 2,其中为false,限制0等)。
hive.exec.dynamic.partition
- 默认值:
false
Hive 0.9.0之前;true
在Hive 0.9.0及更高版本(HIVE-2835) - 添加In:Hive 0.6.0
是否允许DML / DDL中的动态分区。
hive.exec.dynamic.partition.mode
- 默认值:
strict
- 添加In:Hive 0.6.0
在strict
模式下,用户必须指定至少一个静态分区,以防用户意外覆盖所有分区。我ñ nonstrict
模式下,所有分区都允许是动态的。
设置为 nonstrict
支持INSERT ... VALUES,UPDATE和DELETE 事务(Hive 0.14.0及更高版本)。有关打开Hive事务所需参数的完整列表,请参阅 hive.txn.manager。
hive.exec.max.dynamic.partitions
- 默认值:
1000
- 添加In:Hive 0.6.0
允许总共创建的最大 动态分区数。
hive.exec.max.dynamic.partitions.pernode
- 默认值:
100
- 添加In:Hive 0.6.0
允许在每个映射器/ reducer节点中创建的最大 动态分区数。
hive.exec.max.created.files
- 默认值:
100000
- 添加In:Hive 0.7.0
MapReduce作业中所有映射器/缩减器创建的HDFS文件的最大数量。
hive.exec.default.partition.name
- 默认值:
__HIVE_DEFAULT_PARTITION__
- 添加In:Hive 0.6.0
如果动态分区列值为null /空字符串或任何其他无法转义的值,则为默认分区名称。此值不得包含HDFS URI中使用的任何特殊字符(例如,':','%','/'等)。用户必须知道动态分区值不应包含此值以避免混淆。
hive.fetch.output.serde
- 默认值:
org.apache.hadoop.hive.serde2.DelimitedJSONSerDe
- 添加In:Hive 0.7.0
FetchTask使用SerDe来序列化获取输出。
hive.exec.mode.local.auto
- 默认值:
false
- 添加于:Hive 0.7.0 with HIVE-1408
让Hive确定是否自动以本地模式运行。
hive.exec.mode.local.auto.inputbytes.max
- 默认值:
134217728
- 添加于:Hive 0.7.0 with HIVE-1408
当hive.exec.mode.local.auto为true时,对于本地模式,输入字节应小于此值。
hive.exec.mode.local.auto.tasks.max
当hive.exec.mode.local.auto为true时,对于本地模式,任务数应小于此值。由hive.exec.mode.local.auto.input.files.max替换为Hive 0.9.0 。
hive.exec.mode.local .auto.input.files.max
- 默认值:
4
- 添加In:Hive 0.9.0 with HIVE-2651
当hive.exec.mode.local.auto为true时,对于本地模式,任务数应小于此值。
hive.exec.drop.ignorenonexistent
如果DROP TABLE / VIEW / PARTITION / INDEX / TEMPORARY FUNCTION指定不存在的表/视图,则不报告错误。也适用于Hive 0.13.0的永久功能。
hive.exec.show.job.failure.debug.info
- 默认值:
true
- 添加In:Hive 0.7.0
如果作业失败,是否在CLI中为具有最多故障的任务提供链接,以及调试提示(如果适用)。
hive.auto.progress.timeout
- 默认值:
0
- 添加In:Hive 0.7.0
为脚本/ UDTF运算符运行autoprogressor的时间(以秒为单位)。永远设置为0。
hive.table.parameters.default
- 默认值:(空)
- 添加In:Hive 0.7.0
新创建的表的默认属性值。
hive.variable.substitute
- 默认值:
true
- 添加In:Hive 0.7.0
这样可以使用} }和} 等语法进行替换。${var
${system:var
${env:var
hive.error.on.empty.partition
- 默认值:
false
- 添加In:Hive 0.7.0
如果动态分区插入生成空结果,是否抛出异常。
hive.exim.uri.scheme.whitelist
-
默认值:
hdfs,pfile
Hive 2.2.0之前;hdfs,pfile,file
在Hive 2.2.0及更高版本中 - 添加于:Hive 0.8.0 with HIVE-1918 ; 默认情况下,在Hive 2.2.0中使用HIVE-15151进行了更改
用于导入和导出的可接受URI方案的逗号分隔列表。
hive.limit.row.max.size
- 默认值:
100000
- 添加In:Hive 0.8.0
当为简单的LIMIT尝试较小的数据子集时,我们需要保证每行至少具有多少大小。
hive.limit.optimize.limit.file
- 默认值:
10
- 添加In:Hive 0.8.0
为简单的LIMIT尝试较小的数据子集时,我们可以采样的最大文件数。
hive.limit.optimize.enable
- 默认值:
false
- 添加In:Hive 0.8.0
是否允许优化以首先尝试较小的数据子集以进行简单的LIMIT。
hive.limit.optimize.fetch.max
- 默认值:
50000
- 添加In:Hive 0.8.0
如果是获取查询,则简单LIMIT的较小数据子集允许的最大行数。插入查询不受此限制的限制。
hive.rework.mapredwork
- 默认值:
false
- 添加In:Hive 0.8.0
应该重新修改mapred工作。这首先由SymlinkTextInputFormat引入,以在编译时用实际路径替换符号链接文件。
hive.sample.seednumber
- 默认值:
0
- 添加In:Hive 0.8.0
用于百分比抽样的数字。通过更改此数字,用户将更改采样数据的子集。
hive.autogen.columnalias.prefix.label
- 默认值:
_c
- 添加In:Hive 0.8.0
字符串在自动生成列别名时用作前缀。默认情况下,前缀标签将附加列位置编号以形成列别名。如果在没有显式别名的select子句中使用聚合函数,则会发生自动生成。
hive.autogen.columnalias.prefix.includefuncname
- 默认值:
false
- 添加In:Hive 0.8.0
是否在Hive列自动生成的列别名中包含函数名称。
hive.exec.perf.logger
- 默认值:
org.apache.hadoop.hive.ql.log.PerfLogger
- 添加In:Hive 0.8.0
负责记录客户端性能指标的类。必须是org.apache.hadoop.hive.ql.log.PerfLogger的子类。
hive.start.cleanup.scratchdir
- 默认值:
false
- 添加于:Hive 0.8.1与HIVE-2181
- 固定于:Hive 1.3.0与HIVE-10415
在启动Hive服务器(或HiveServer2)时清理Hive 暂存目录。这不是多用户环境的选项,因为它会意外删除正在使用的暂存目录。
hive.scratchdir.lock
- 默认值:
false
- 添加In:Hive 1.3.0和2.1.0(但不是2.0.x)与HIVE-13429
如果为true,则在暂存目录中保存一个锁定文件。如果Hive进程死亡并且意外地留下悬挂的scratchdir, cleardanglingscratchdir工具 将删除它。
如果为false,则不会创建锁定文件,因此cleardanglingscratchdir工具无法删除任何悬空的临时目录。
hive.output.file.extension
- 默认值:(空)
- 添加In:Hive 0.8.1
用作输出文件的文件扩展名的字符串。如果未设置,则默认为文本文件的编解码器扩展名(例如“.gz”),否则为无扩展名。
hive.insert.into.multilevel.dirs
- 默认值:
false
- 添加In:Hive 0.8.1
是否插入多级嵌套目录,如“从表中插入目录'/ HIVEFT25686 / chinna /'”。
插入不存在的嵌套目录时可能会显示以下错误:
ERROR org.apache.hadoop.hive.ql.exec.Task:失败,异常无法重命名:<xxxx>
要启用自动子目录生成集'hive.insert.into.multilevel.dirs = true'
hive.conf.validation
- 默认值:
true
- 添加In:Hive 0.10.0 with HIVE-2848
为已注册的Hive配置启用类型检查。
从Hive 0.14.0(HIVE-7211)开始,配置名称以“hive”开头。被视为Hive系统属性。使用hive.conf.validation为 true(默认值)时,任何尝试设置以“hive”开头的配置属性。未注册到Hive系统的将抛出异常。
hive.fetch.task.conversion
- 默认值:
minimal
在Hive 0.10.0到0.13.1中,more
在Hive 0.14.0及更高版本中 - 添加In:Hive 0.10.0 with HIVE-2925 ; 使用HIVE-7397在Hive 0.14.0中更改了默认值
某些选择查询可以转换为单个FETCH任务,从而最大限度地减少延迟。目前,查询应该是单一来源的,没有任何子查询,并且不应该有任何聚合或区别(引起RS-ReduceSinkOperator,需要MapReduce任务),横向视图和连接。
支持的值为none,minimal
和more
。
0 none
:禁止hive.fetch.task.conversion(在蜂房0.14.0加入值HIVE-8389)
1. minimal
:SELECT *,上分区列FILTER(WHERE和HAVING子句),LIMIT只有
2 more
:SELECT,FILTER,仅限LIMIT(包括TABLESAMPLE,虚拟列)
“ more
”可以在SELECT子句中使用任何类型的表达式,包括UDF。
(UDTF和侧面观点尚不支持 - 见 HIVE-5718。)
hive.map.groupby.sorted
- 默认值:
- Hive 0.x和1.x:
false
- Hive 2.0及更高版本:
true
(HIVE-12325)
- Hive 0.x和1.x:
- 添加In:Hive 0.10.0 with HIVE-3432
如果表的bucketing / sorting属性与分组键完全匹配,则是否 使用BucketizedHiveInputFormat在映射器中执行group by。唯一的缺点 是它将映射器的数量限制为文件数量。
hive.map.groupby.sorted.testmode
- 默认值:
false
- 添加In:Hive 0.11.0 with HIVE-4281
- 删除:Hive 2.0.0与HIVE-12325
如果表的bucketing / sorting属性与分组键完全匹配,则是否 使用BucketizedHiveInputFormat在映射器中执行group by。如果设置了测试模式, 则不会转换计划,但会将查询属性设置为表示相同。(在2.0.0版中删除了此配置属性。)
hive.groupby.orderby.position.alias
- 默认值:
false
- 添加In:Hive 0.11.0与 HIVE-581
- 不推荐使用:Hive 2.2.0 with HIVE-15797
是否在GROUP BY和ORDER BY子句中启用列位置别名(从Hive 2.2.0开始不推荐使用;请改用hive.groupby.position.alias和hive.orderby.position.alias)。
hive.groupby.position.alias
- 默认值:
false
- 添加In:Hive 2.2.0 with HIVE-15797
是否在GROUP BY中启用列位置别名。
hive.orderby.position.alias
- 默认值:
true
- 添加In:Hive 2.2.0 with HIVE-15797
是否在ORDER BY中启用列位置别名。
hive.fetch.task.aggr
没有group-by子句的聚合查询(例如select count(*) from src
)在单个reduce任务中执行最终聚合。如果将此参数设置为 true
,则Hive会将最终聚合阶段委派给获取任务,这可能会缩短查询时间。
hive.fetch.task.conversion.threshold
- 默认值:
Hive 0.14.0中的Hive 0.13.0和0.13.1,-1
1073741824
(1 GB) - 添加In:Hive 0.13.0 with HIVE-3990 ; 使用HIVE-7397在Hive 0.14.0中更改了默认值
应用hive.fetch.task.conversion的输入阈值(以字节为单位)。如果目标表是本机的,则输入长度通过文件长度的总和来计算。如果它不是本机的,则表的存储处理程序可以选择实现org.apache.hadoop.hive.ql.metadata.InputEstimator接口。负阈值意味着 应用hive.fetch.task.conversion而没有任何输入长度阈值。
hive.limit.pushdown.memory.usage
- 默认值:
-1
- 添加In:Hive 0.12.0 with HIVE-3562
用于顶部K选择的RS运算符中的散列的最大内存。默认值“-1”表示没有限制。
hive.cache.expr.evaluation
- 默认值:
true
- 添加In:Hive 0.12.0 with HIVE-4209
- 错误修复:带有HIVE-7314的 Hive 0.14.0 (在另一个UDF或Hive函数中使用UDF时,表达式缓存不起作用)
如果为true,则将缓存引用两次或更多次的确定性表达式的评估结果。例如,在“...其中键+ 10> 10或键+ 10 = 0”这样的过滤条件中,表达式“key + 10”将被评估/缓存一次并重新用于以下表达式(“key + 10 = 0" )。目前,这仅适用于select或filter运算符中的表达式。
hive.resultset.use.unique.column.names
- 默认值:
true
- 添加In:Hive 0.13.0 with HIVE-6687
如果需要,通过使用表别名限定列名来使结果集中的列名唯一。如果查询类型为“select *”,或者查询显式使用表别名“select r1.x ..”,则表别名将添加到列名称中。
hive.support.quoted.identifiers
- 默认值:
column
- 添加In:Hive 0.13.0 with HIVE-6013
是否使用带引号的标识符。值可以是“ none
”或“ column
”。
column
:列名称可以包含任何Unicode字符。在backticks(`
)中指定的任何列名都按字面处理。在反引号字符串中,使用双反引号(``
)来表示反引号字符。none
:只有字母数字和下划线字符在标识符中有效。反引号名称被解释为正则表达式。这也是0.13.0之前版本中的行为。
hive.plan.serialization.format
- 默认值:
kryo
- 添加In:Hive 0.13.0 with HIVE-1511
- 删除了一个值:Hive 2.0.0 with HIVE-12609不再支持javaXML
查询客户端和任务节点之间的计划格式序列化。两个支持的值是kryo
和javaXML
(在Hive 2.0.0之前)。Kryo是默认值(从Hive 2.0.0开始,Kryo是唯一支持的值)。
hive.exec.check.crossproducts
- 默认值:
true
- 添加In:Hive 0.13.0 with HIVE-6643
检查查询计划是否包含跨产品。如果有,请向会话控制台输出警告。
hive.display.partition.cols.separately
- 默认值:
true
- 添加In:Hive 0.13.0 with HIVE-6689
在较旧的Hive版本(0.10及更早版本)中,在DESCRIBE TABLE中显示列时,分区列或非分区列之间没有区别。从版本0.12开始,它们将单独显示。如果需要,此标志将允许您获取旧行为。请参阅HIVE-6689补丁中的测试用例。
hive.limit.query.max.table.partition
- 默认值:
-1
- 添加In:Hive 0.13.0 with HIVE-6492
- 不推荐使用:Hive 2.2.0 with HIVE-13884(参见hive.metastore.limit.partition.request。)
- 删除:Hive 3.0.0 with HIVE-17965
为了保护群集,它控制可以为每个分区表扫描多少个分区。默认值“-1”表示没有限制。分区限制不会影响仅元数据查询。
hive.files.umask.value
- 默认值:
0002
- 添加In :(无,但 在发布0.9.0之前临时出现在HIVE-2504的补丁中)
- 删除:Hive 0.9.0(HIVE-2504-1.patch),由hive.warehouse.subdir.inherit.perms取代
已过时:dfs.umask
Hive创建的文件夹的值。
hive.optimize.sampling.orderby
- 默认值:
false
- 添加In:Hive 0.12.0 with HIVE-1402
在order-by子句上使用sampling进行并行执行。
hive.optimize.sampling.orderby .number
- 默认值:
1000
- 添加In:Hive 0.12.0 with HIVE-1402
使用hive.optimize.sampling.orderby = true,获取计算分区键的总样本数。
hive.optimize.sampling.orderby .percent
- 默认值:0.1
- 添加In:Hive 0.12.0 with HIVE-1402
使用hive.optimize.sampling.orderby = true,将选择行的概率。
蜂巢。COMPAT
- 默认值:0.12
- 添加In:Hive 0.13.0 with HIVE-6012
通过设置所需的向后兼容级别来启用(可配置)已弃用的算术运算行为。默认值为数值运算提供向后兼容的返回类型。其他受支持的版本号为数字操作提供了更新的行为,例如0.13给出了HIVE-5356中引入的更多SQL兼容的返回类型。
值“latest”指定最新支持的级别。目前,这只影响整数的划分。
设置为0.12(默认值)可在Hive 0.12及更早版本中维护除法行为:int / int = double。
设置为0.13会在Hive 0.13及更高版本中显示除法行为:int / int = decimal。
无效设置将导致错误消息,并将使用默认支持级别。
hive.optimize.constant.propagation
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-5771
是否启用常量传播优化器。
hive.entity.capture.transform
启用捕获转换URI的编译器读取实体,可以在语义和exec挂钩中进行内省。
hive.support.sql11.reserved.keywords
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-6617
是否 启用对SQL2011保留关键字的支持。 启用时,将支持(部分)SQL2011 保留关键字。
hive.log.explain.output
启用后,将在log4j INFO级别和HiveServer2 WebUI / Drilldown / Query Plan中记录查询的EXPLAIN EXTENDED输出。
从Hive 3.1.0开始,此配置属性仅记录到log4j INFO。牛逼o记录的EXPLAIN EXTENDED 在WebUI中输出/追溯/查询计划从蜂巢3.1.0起,使用hive.server2.webui.explain.output。
hive.explain.user
- 默认值:
false
- 添加In:Hive 1.2.0 with HIVE-9780
是否在用户级别显示说明结果。 启用后,将在用户级别记录查询的EXPLAIN输出。(仅限Tez。对于Spark,请参阅hive.spark.explain.user。)
hive.typecheck.on.insert
- 默认值:true
- 添加In:带有HIVE-5297的 Hive 0.12.0 用于插入分区
- 扩展In:Hive 1.2与HIVE-10307进行更改,描述分区等。
是否检查,转换和规范化分区规范中指定的分区值以符合分区列类型。
hive.exec.temporary.table.storage
-
默认值:
default
- 添加In:Hive 1.1.0 with HIVE-7313
预计[一memory
,ssd
,default
]。
定义临时表的存储策略。内存,ssd和默认值之间的选择。请参阅 HDFS存储类型和存储策略。
hive.optimize.distinct.rewrite
-
默认值:
true
- 添加In:Hive 1.2.0 with HIVE-10568
当适用时,这种优化重写不同的集合 从一单级到多级聚合。在所有情况下,这可能不是最佳的。理想情况下,是否触发它应该是基于成本的决策。在Hive为此建立成本模型之前,这是配置驱动的。
hive.optimize.point.lookup
-
默认值:
true
- 添加In:Hive 2.0.0 with HIVE-11461
是否将Filter运算符中的OR子句转换为IN子句。
hive.optimize.point.lookup.min
-
默认值:
31
- 添加In:Hive 2.0.0 with HIVE-11573
转换为IN子句所需的OR子句的最小数量。
hive.allow.udf.load.on.demand
-
默认值:
false
- 添加于:Hive 2.1.0 with HIVE-13596
是否根据需要启用从Metastore加载UDF; 这主要与HS2相关,是Hive 1.2之前的默认行为。
hive.async.log.enabled
-
默认值:
true
- 添加In:Hive 2.1.0 with HIVE-13027
是否启用Log4j2的异步日志记录。异步日志记录可以 显着提高性能,因为日志记录将在 使用LMAX中断队列缓冲日志消息的单独线程中处理。
请参阅https://logging.apache.org/log4j/2.x/manual/async.html 的优点和 缺点。
hive.msck.repair.batch.size
- 默认值:0
- 添加于:Hive 2.2.0 with HIVE-12077
批量运行MSCK REPAIR TABLE命令。如果存在大量未跟踪的分区,则通过为属性配置值,它将在内部批量执行。该属性的默认值为零,这意味着它将立即执行所有分区。
hive.exec.copyfile.maxnumfiles
- 默认值:1
- 添加于:Hive 2.3.0 with HIVE-14864
Hive用于在目录之间执行顺序HDFS复制的最大文件数。分布式副本(distcp)将用于更大数量的文件,以便可以更快地完成副本。
hive.exec.copyfile.maxsize
- 默认值:32兆字节
- 添加In:Hive 1.1.0 with HIVE-8750
Hive用于在目录之间执行单个HDFS复制的最大文件大小(以字节为单位)。分布式副本(distcp)将用于更大的文件,以便更快地完成复制。
hive.exec.stagingdir
- 默认值:
.hive-staging
- 添加于:Hive 1.1.0 with HIVE-8750
将在表位置内创建的目录名称,以支持HDFS加密。hive.exec.scratchdir
除了只读表之外,这将替换查询结果。在所有情况下hive.exec.scratchdir
,仍然用于其他临时文件,例如工作计划。
hive.query.lifetime.hooks
- 默认值:(空)
- 添加于:Hive 2.3.0 with HIVE-14340
以逗号分隔的钩子列表,用于实现QueryLifeTimeHook。这些将在查询编译之前/之后以及在查询执行之前/之后按指定的顺序触发。从Hive 3.0.0(HIVE-16363)开始,此配置可用于指定QueryLifeTimeHookWithParseHooks的实现。如果指定了它们,那么它们将在与QueryLifeTimeHooks相同的位置调用,并将在前后查询解析期间调用。
hive.remove.orderby.in.subquery
- 默认值:
true
- 添加In:Hive 3.0.0 with HIVE-6348
如果设置为true,则将删除子查询和视图中的无限制排序/排序。
SerDes和I / O.
串行解串器
hive.script.serde
- 默认值:
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- 添加In:Hive 0.4.0
默认SerDe用于将输入数据传输到用户脚本并从用户脚本读取输出数据。
hive.script.recordreader
- 默认值:
org.apache.hadoop.hive.ql.exec.TextRecordReader
- 添加In:Hive 0.4.0
用于从用户脚本读取数据的默认记录阅读器。
hive.script.recordwriter
- 默认值:
org.apache.hadoop.hive.ql.exec.TextRecordWriter
- 添加In:Hive 0.5.0
用于将数据写入用户脚本的默认记录编写器。
hive.default.serde
- 默认值:
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
- 添加于:Hive 0.14 with HIVE-5976
默认的SerDe Hive将用于未指定SerDe的存储格式。当前未指定SerDe的存储格式包括“TextFile,RcFile”。
有关存储格式和SerDes的更多信息,请参阅 Native SerDes的注册。
hive.lazysimple.extended_boolean_literal
- 默认值:
false
- 添加于:Hive 0.14与 HIVE-3635
除了'TRUE'和'FALSE'之外,LazySimpleSerDe使用此属性来确定它是否将'T','t','F','f', '1'和'0'视为扩展的合法布尔文字。 。 默认值为false
,这意味着只有'TRUE'和'FALSE'被视为合法的 布尔文字。
I / O
hive.io .exception.handlers
- 默认值:(空)
- 添加In:Hive 0.8.1
I / O异常处理程序类名列表。这用于构造异常处理程序列表,以处理记录读取器抛出的异常。
hive.input.format
- 默认值:
org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
- 添加In:Hive 0.5.0
默认输入格式。如果遇到CombineHiveInputFormat问题,请将其设置为HiveInputFormat。
另见:
文件格式
hive.default.fileformat
- 默认值:
TextFile
- 添加In:Hive 0.2.0
CREATE TABLE语句的缺省文件格式。选项包括TextFile,SequenceFile,RCfile,ORC和Parquet。
用户可以明确地说CREATE TABLE ... STORED as TEXTFILE | SEQUENCEFILE | RCFILE | ORC | AVRO | INPUTFORMAT ... OUTPUTFORMAT ...来覆盖。(RCFILE在Hive 0.6.0中添加,ORC在0.11.0中添加,AVRO在0.14.0中添加,Parquet在2.3.0中)有关详细信息,请参阅行格式,存储格式和SerDe。
hive.default.fileformat.managed
- 默认值:
none
- 添加In:Hive 1.2.0 with HIVE-9915
仅应用于托管表的CREATE TABLE语句的缺省文件格式。将使用hive.default.fileformat指定的格式创建外部表。选项为 none,TextFile,SequenceFile,RCfile,ORC和Parquet(从Hive 2.3.0开始)。 保留此null将导致对所有本机表使用hive.default.fileformat。对于非本机表,文件格式由存储处理程序确定,如下所示(有关托管/外部和本机/非本机术语的详细信息,请参阅StorageHandlers部分)。
| 本地人 | 非母语 |
---|---|---|
管理 | hive.default.fileformat.managed(或回退到hive.default.fileformat) | 默认文件格式不涵盖 |
外部 | hive.default.fileformat | 默认文件格式不涵盖 |
hive.fileformat.check
- 默认值:
true
- 添加In:Hive 0.5.0
加载数据文件时是否检查文件格式。
hive.query.result.fileformat
- 默认值:
- Hive 0.x,1.x和2.0:
TextFile
- Hive 2.1向前:
SequenceFile
- Hive 0.x,1.x和2.0:
- 添加In:Hive 0.7.0 with HIVE-1598
用于查询中间结果的文件格式。选项包括TextFile,SequenceFile和RCfile。自Hive 2.1.0(HIVE-1608)以来,默认值更改为SequenceFile 。
RCFile格式
hive.io .rcfile.record.interval
hive.io .rcfile.column.number.conf
hive.io .rcfile.tolerate.corruptions
hive.io .rcfile.record.buffer.size
ORC文件格式
ORC文件格式是在Hive 0.11.0中引入的。有关详细信息,请参阅ORC文件
除了本节中列出的配置属性外,其他部分中的某些属性也与ORC相关:
hive.exec.orc.memory.pool
- 默认值:
0.5
- 添加In:Hive 0.11.0与HIVE-4248
ORC文件编写者可以使用的最大堆积分数。
hive.exec.orc.write.format
- 默认值:(空)
- 添加In:Hive 0.12.0 with HIVE-4123 ; 使用HIVE-5091,默认值从0.11变为null (同样在Hive 0.12.0中)
定义要写入的文件的版本。可能的值为0.11和0.12。如果未定义此参数,ORC将使用Hive 0.12中引入的行程编码(RLE)。除0.11之外的任何值都会导致0.12编码。
未来可能会引入其他值(参见HIVE-6002)。
hive.exec.orc.base.delta.ratio
- 默认值:8
- 添加In:Hive 1.3.0和2.1.0 with HIVE-13563
根据STRIPE_SIZE和BUFFER_SIZE定义基本编写器和增量写入器的比率。
hive.exec.orc.default.stripe.size
- 默认值:
256*1024*1024
(268,435,456)in 0.13.0;
64*1024*1024
(67,108,864)在0.14.0 - 添加In:Hive 0.13.0 with HIVE-5425 ; 默认值为0.14.0,HIVE-7231和HIVE-7490
定义默认的ORC条带大小(以字节为单位)。
hive.exec.orc.default.block.size
- 默认值:
256*1024*1024
(268,435,456) - 添加In:Hive 0.14.0 with HIVE-7231
定义ORC文件的默认文件系统块大小。
hive.exec.orc.dictionary.key.size.threshold
- 默认值:
0.8
- 添加In:Hive 0.12.0 with HIVE-4324
如果字典中的键数大于非空行总数的这一部分,请关闭字典编码。使用1始终使用字典编码。
hive.exec.orc.default.row.index.stride
- 默认值:
10000
- 添加In:Hive 0.13.0与 HIVE-5728
以行数定义默认ORC索引步幅。(Stride是索引条目表示的行数。)
hive.exec.orc.default.buffer.size
- 默认值:
256*1024
(262,144) - 添加In:Hive 0.13.0与 HIVE-5728
定义默认的ORC缓冲区大小(以字节为单位)。
hive.exec.orc.default.block.padding
- 默认值:
true
- 添加In:Hive 0.13.0与 HIVE-5728
定义默认的块填充。在Hive 0.12.0中添加了块填充(HIVE-5091,“ORC文件应该具有将条带填充到HDFS块边界的选项”)。
hive.exec.orc.block.padding.tolerance
- 默认值:
0.05
- 添加In:Hive 0.14.0 with HIVE-7231
将块填充的容差定义为条带大小的小数部分(例如,默认值0.05是条带大小的5%)。对于64Mb ORC条带和256Mb HDFS块的默认值,将使用默认的hive.exec.orc.block.padding.tolerance为256Mb块中的填充保留最大3.2Mb。在这种情况下,如果块中的可用大小超过3.2Mb,则将插入一个新的较小条带以适合该空间。这将确保没有写入的条带将跨越块边界并导致节点本地任务内的远程读取。
hive.exec.orc.default.compress
- 默认值:
ZLIB
- 添加In:Hive 0.13.0与 HIVE-5728
定义ORC文件的默认压缩编解码器。
hive.exec.orc.encoding.strategy
- 默认值:
SPEED
- 添加In:Hive 0.14.0 with HIVE-7219
定义编写数据时要使用的编码策略。更改此值只会影响整数的轻量级编码。此标志不会更改更高级别压缩编解码器(如ZLIB)的压缩级别。可能的选项是SPEED和COMPRESSION。
hive.orc.splits.include.file.footer
如果启用,ORC生成的拆分 将包含有关文件中条带的元数据。远程读取此数据(从客户端或HiveServer2计算机)并发送到所有任务。
hive.orc.cache.stripe.details.size
用于保存 客户端中缓存的ORC拆分的元信息的高速缓存大小 。
hive.orc.cache.use.soft.references
- 默认值:
false
- 添加In:Hive 1.3.0,Hive 2.1.1,Hive 2.2.0 with HIVE-13985
默认情况下,ORC输入格式用于存储ORC文件页脚的缓存使用缓存对象的硬引用。将此设置为true有助于避免内存压力下的内存不足问题(在某些情况下),但代价是整体查询性能略有不可预测性。
hive.io.sarg.cache.max.weight.mb
- 默认值:
10
- 添加In:Hive 2.2.1,Hive 2.3.1,Hive 2.4.0,Hive 3.0.0 with HIVE-17669
SearchArgument Cache允许的最大权重,以兆字节为单位。默认情况下,缓存允许最大权重为10MB,之后将逐出条目。设置为0,完全禁用SearchArgument缓存。
hive.orc.compute.splits.num.threads
ORC 应该使用多少个线程 来并行创建拆分。
hive.exec.orc.split.strategy
- 默认值:HYBRID
- 添加In:Hive 1.2.0 with HIVE-10114
ORC 应该使用什么策略 来创建执行拆分。可用选项是“BI”,“ETL”和“HYBRID”。
如果文件少于预期的映射器计数,HYBRID模式将读取所有文件的页脚,如果平均文件大小小于默认HDFS块大小,则切换到每个文件生成1个拆分。ETL策略始终在生成拆分之前读取ORC页脚,而BI策略生成每个文件的快速拆分而不从HDFS读取任何数据。
hive.exec.orc.skip.corrupt.data
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-6382
如果ORC阅读器遇到损坏的数据,则此值将用于确定是否跳过损坏的数据或抛出异常。默认行为是抛出异常。
hive.exec.orc.zerocopy
使用带有ORC的zerocopy读取。(这需要Hadoop 2.3或更高版本。)
hive.merge.orcfile.stripe.level
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7509
在使用ORC文件格式编写表时启用hive.merge.mapfiles,hive.merge.mapredfiles或hive.merge.tezfiles时,启用此配置属性将对小ORC文件执行条带级快速合并。请注意,启用此配置属性不会遵循填充容差配置(hive.exec.orc.block.padding.tolerance)。
hive.orc.row.index.stride.dictionary.check
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7832
如果启用字典检查将在第一行索引步长(默认10000行)之后发生,否则字典检查将在写入第一个条带之前发生。在这两种情况下,之后将保留使用字典的决定。
hive.exec.orc.compression.strategy
- 默认值:
SPEED
- 添加In:Hive 0.14.0 with HIVE-7859
定义在写入数据时使用的压缩策略。 这会更改更高级别压缩编解码器(如ZLIB)的压缩级别。
价值可以是 SPEED
或 COMPRESSION
。
实木复合地板
Parquet由Hive 0.10,0.11和0.12中的插件支持,本机在Hive 0.13及更高版本中。有关详细信息,请参阅Parquet
hive.parquet.timestamp.skip.conversion
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-9482
3.1.2之前Parquet的Hive实现以UTC文件形式存储时间戳,该标志允许在读取可能没有这样做的其他工具创建的 Parquet文件时跳过转换。
Avro公司
有关详细信息,请参阅AvroSerDe。
hive.avro.timestamp.skip.conversion
- 默认值:false
- 添加于:Hive 3.1.2与 HIVE-21291
一些较旧的Hive实现(3.1.2之前版本)以UTC规范化方式编写Avro时间戳,而从3.1.0版本到3.1.2 Hive编写时区不可知时间戳。
将此标志设置为true会将旧时间戳视为时区不可知。将其设置为false会将旧时间戳视为UTC规范化。
此标志不影响从Hive 3.1.2开始编写的时间戳,这些时间戳实际上与时区无关( 有关详细信息,请参阅HIVE-21002)。
注意:此属性将影响使用AvroSerDe的HBase文件和Kafka表中的时间戳(在有效负载中)/ Avro文件,这不是关于Kafka时间戳)被反序列化 - 请记住,使用AvroSerDe序列化的时间戳将在序列化期间进行UTC规范化。因此,如果使用HBase或Kafka,请将此属性设置为false。
矢量
Hive在版本0.13.0(HIVE-4160,HIVE-5283)中添加了矢量化查询执行。 有关更多信息,请参阅设计文档Vectorized Query Execution 。
hive.vectorized.execution.enabled
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-5283
此标志应设置为true以启用查询执行的矢量化模式。 默认值为false。
hive.vectorized.execution.reduce.enabled
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7405
此标志应设置为true以启用查询执行的reduce端的矢量化模式。默认值是true。
hive.vectorized.execution.reduce.groupby.enabled
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-8052
此标志应设置为true以启用reduce侧DB2 BY查询执行的向量化模式。 默认值是true。
hive.vectorized.execution.reducesink.new.enabled
- 默认值:
true
- 添加In:Hive 2.0.0 with HIVE-12290
此标志应设置为true以使用ReduceSink启用查询的新矢量化。
hive.vectorized.execution.mapjoin.native.enabled
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-9824
此标志应设置为true以使用MapJoin启用查询的本机(即非传递)矢量化。
hive.vectorized.execution.mapjoin.native.multikey.only.enabled
- 默认值:
false
- 添加In:Hive 1.2.0 with HIVE-9824
此标志应设置为true以限制在使用MapJoin的查询中将本机矢量映射连接哈希表用于MultiKey。
hive.vectorized.execution.mapjoin.minmax.enabled
- 默认值:
false
- 添加In:Hive 1.2.0 with HIVE-9824
此标志应设置为true,以使矢量映射连接哈希表能够使用MapJoin对整数连接查询使用max / max过滤。
hive.vectorized.execution.mapjoin.overflow.repeated.threshold
- 默认值:
-1
- 添加In:Hive 1.2.0 with HIVE-9824
向量映射中匹配的小表行数加入哈希表,我们在溢出向量化行批处理中使用重复字段优化来使用MapJoin进行连接查询。-1
均值的值确实使用了连接结果优化。否则,阈值可以是0到最大整数。
hive.vectorized.execution.mapjoin.native.fast.hashtable.enabled
- 默认值:
false
- 添加In:Hive 1.2.0 with HIVE-9824
此标志应设置为true,以便在使用MapJoin的查询中使用本机快速矢量映射连接哈希表。
hive.vectorized.groupby.checkinterval
- 默认值:
100000
- 添加In:Hive 0.13.0 with HIVE-5692
在执行重新计算平均条目大小之前添加到GROUP BY聚合哈希的条目数。
hive.vectorized.groupby.maxentries
- 默认值:
1000000
- 添加In:Hive 0.13.0 with HIVE-5692
向量GROUP BY聚合哈希表中的最大条目数。无论内存压力如何,超过此值都会触发冲洗。
hive.vectorized.use.vectorized.input.format
- 默认值:
true
- 添加In:Hive 2.1.0 with HIVE-12878
此标志应设置为true,以允许Hive利用支持向量化的输入格式。默认值是true。
hive.vectorized.use.vector.serde.deserialize
- 默认值:
false
- 添加In:Hive 2.1.0 with HIVE-12878
此标志应设置为true以使用向量反序列化启用向量化行。默认值为false。
hive.vectorized.use.row.serde.deserialize
- 默认值:
false
- 添加In:Hive 2.1.0 with HIVE-12878
此标志应设置为true以使用行反序列化启用矢量化。默认值为false。
hive.vectorized.input.format.excludes
- 默认值:(空)
- 添加于:Hive 2.4.0 with HIVE-17534
此标志应用于提供逗号分隔的完全限定类名列表,以使用向量化文件inputformat从向量化执行中排除某些FileInputFormats。请注意,根据是否启用了hive.vectorized.use.vector.serde.deserialize或hive.vectorized.use.row.serde.deserialize,该输入格式仍然可以执行矢量化执行。
MetaStore
除了本节中列出的Hive Metastore属性外,其他部分还列出了一些属性:
hive.metastore.local
- 默认值:
true
- 添加In:Hive 0.8.1
- 删除:Hive 0.10与HIVE-2585
控制是否连接到远程Metastore服务器或在Hive Client JVM中打开新的Metastore服务器。从Hive 0.10开始,不再使用它。相反,如果hive.metastore.uris
设置,remote
则以其他方式假设模式local
。
hive.metastore.uri.selection
- 默认值:RANDOM
- 添加In:Hive 3.0.0
确定Metastore客户端用于连接到远程Metastore的选择机制。SEQUENTIAL意味着将挑选来自作为hive.metastore.uris一部分指定的URI的第一个有效Metastore。RANDOM意味着将随机挑选Metastore。
javax.jdo.option.ConnectionURL
- 默认值:
jdbc:derby:;databaseName=metastore_db;create=true
- 添加In:Hive 0.6.0
JDBC连接字符串用于JDBC Metastore。
javax.jdo.option.ConnectionDriverName
- 默认值:
org.apache.derby.jdbc.EmbeddedDriver
- 添加In:Hive 0.8.1
JDBC Metastore的驱动程序类名称。
javax.jdo.PersistenceManagerFactoryClass
- 默认值:
org.datanucleus.jdo.JDOPersistenceManagerFactory
- 添加In:Hive 0.8.1
实现JDO PersistenceManagerFactory的类。
javax.jdo.option.DetachAllOnCommit
- 默认值:
true
- 添加In:Hive 0.8.1
从会话中分离所有对象,以便在提交事务后可以使用它们。
javax.jdo.option.NonTransactionalRead
- 默认值:
true
- 添加In:Hive 0.8.1
在交易之外阅读。
javax.jdo.option.ConnectionUserName
- 默认值:
APP
- 添加In:Hive 0.8.1
用于对Metastore数据库的用户名。
javax.jdo.option.ConnectionPassword
- 默认值:
mine
- 添加In:Hive 0.3.0
用于对Metastore数据库的密码。
有关备用配置,请参阅 从Hive配置中删除Hive Metastore密码。
javax.jdo.option.Multithreaded
- 默认值:
true
- 添加In:Hive 0.8.0
如果多个线程同时通过JDO访问Metastore,则将此设置为true。
datanucleus.connectionPoolingType
- 默认值:Hive中的DBCP 0.7到0.11; BoneCP在0.12到2.3之间; HikariCP 3.0及更高版本
- 添加In:Hive 0.7.0
从3.0版开始使用HikariCP连接池用于JDBC Metastore(HIVE-16383)。
在版本0.12到2.3(HIVE-4807)中使用BoneCP连接池用于JDBC Metastore ,或在版本0.7到0.11中使用DBCP连接池。
从Hive 2.2.0(HIVE-13159)开始,此参数也可以设置为none
。
datanucleus.connectionPool.maxPoolSize
- 默认值:10
- 添加In:Hive 3.0.0
指定连接池中的最大连接数。
注意:配置的大小将由2个连接池(TxnHandler和ObjectStore)使用。
配置最大连接池大小时,建议考虑Metastore实例的数量和HiveServer2实例的数量
配置嵌入式Metastore。要获得最佳性能,请将config设置为满足以下条件
(2 * pool_size * metastore_instances + 2 * pool_size * HS2_instances_with_embedded_metastore)=(2 * physical_core_count + hard_disk_count)。
datanucleus.validateTables
- 默认值:
false
- 添加In:Hive 0.7.0
- 删除:Hive 2.0.0与HIVE-6113,由datanucleus.schema.validateTables取代
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.schema.validateTables
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-6113,替换datanucleus.validateTables
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.validateColumns
- 默认值:
false
- 添加In:Hive 0.7.0
- 删除:Hive 2.0.0 with HIVE-6113,替换为datanucleus.schema.validateColumns
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.schema.validateColumns
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-6113,替换datanucleus.validateColumns
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.validateConstraints
- 默认值:
false
- 添加In:Hive 0.7.0
- 删除:Hive 2.0.0 with HIVE-6113,替换为datanucleus.schema.validateConstraints
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.schema.validateConstraints
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-6113,取代datanucleus.validateConstraints
根据代码验证现有架构。如果要验证现有架构,请启用此选项。
datanucleus.storeManagerType
- 默认值:
rdbms
- 添加In:Hive 0.7.0
元数据存储类型。
datanucleus.fixedDatastore
指示是否允许更新架构。
datanucleus.autoCreateSchema
- 默认值:
true
- 添加In:Hive 0.7.0
- 删除:Hive 2.0.0与HIVE-6113,由datanucleus.schema.autoCreateAll取代
如果不存在,则在启动时创建必要的模式。创建一次后将其设置为false。
在Hive 0.12.0及更高版本中,如果 是hive.metastore.schema.verification,则禁用datanucleus.autoCreateSchematrue
。
datanucleus.schema.autoCreateAll
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-6113,替换datanucleus.autoCreateSchema(具有不同的默认值)
如果不存在,则在启动时创建必要的模式。创建一次后,将其重置为false。
如果 是hive.metastore.schema.verification,则禁用datanucleus.schema.autoCreateAlltrue
。
datanucleus.autoStartMechanismMode
- 默认值:
checked
- 添加In:Hive 0.7.0
如果元数据表不正确,则抛出异常。
datanucleus.transactionIsolation
- 默认值:
read-committed
- 添加In:Hive 0.7.0
标识生成的默认事务隔离级别。
datanucleus.cache.level2
- 默认值:
false
- 添加In:Hive 0.7.0
此参数不执行任何操作
警告说明:对于大多数安装,Hive不应启用DataNucleus L2缓存,因为这可能导致正确性问题。因此,有些人将此参数设置为false,假设这会禁用缓存 - 不幸的是,它没有。要实际禁用缓存,请将datanucleus.cache.level2.type设置 为“none”。
datanucleus.cache.level2.type
- 默认值:
none
在Hive 0.9及更高版本中;SOFT
在Hive 0.7到0.8.1 - 添加In:Hive 0.7.0
NONE =禁用datanucleus 2级缓存,SOFT =基于软参考的缓存,WEAK =基于弱参考的缓存。
警告说明:对于大多数Hive安装,启用datanucleus缓存可能会导致正确性问题,并且很危险。这应保留为“无”。
datanucleus.identifierFactory
- 默认值:
datanucleus
- 添加In:Hive 0.7.0
生成表/列名称时使用的标识符工厂的名称等。“datanucleus”用于向后兼容。
datanucleus.plugin.pluginRegistryBundleCheck
- 默认值:
LOG
- 添加In:Hive 0.7.0
定义在找到并重复插件包时会发生什么:EXCEPTION,LOG或NONE。
hive.metastore.warehouse.dir
- 默认值:
/user/hive/warehouse
- 添加In:Hive 0.2.0
仓库的默认数据库的位置。
hive.warehouse.subdir.inherit.perms
- 默认值:
false
- 添加In:Hive 0.9.0 with HIVE-2504。
- 删除:Hive 3.0.0 with HIVE-16392
如果表目录应继承仓库或数据库目录的权限,而不是使用从dfs umask派生的权限创建,则将此属性设置为true。(在Hive 0.9.0发布之前,此配置属性替换了hive.files.umask.value)(在3.0.0版中删除了此配置属性,在Hive中的权限继承中有更多详细信息)
在HIVE-6892和次级JIRA中,Hive-0.14.0改变了标志的行为。Hive中的权限继承中的更多详细信息 。
hive.metastore.execute.setugi
- 默认值:
false
在Hive 0.8.1到0.13.0中,true
从Hive 0.14.0开始 - 添加In:带有HIVE-2616的 Hive 0.8.1, 在Hive 0.14.0中使用HIVE-6903更改默认值
在不安全模式下,true将导致Metastore使用客户端报告的用户和组权限执行DFS操作。请注意,必须在客户端和服务器端都设置此属性。进一步注意,这是最好的努力。如果客户端将其设置为true并且服务器将其设置为false,则将忽略客户端设置。
hive.metastore.event.listeners
- 默认值:(空)
- 添加于:Hive 0.8.0 with HIVE-2038
Metastore事件的逗号分隔侦听器列表。
hive.metastore.partition.inherit.table.properties
- 默认值:(空)
- 添加In:Hive 0.8.1
表属性中出现的逗号分隔键列表,这些键将继承到新创建的分区。*暗示所有密钥都将被继承。
hive.metastore.end.function.listeners
- 默认值:(空)
- 添加In:Hive 0.8.1
Metastore函数结束时以逗号分隔的侦听器列表。
hive.metastore.event.expiry.duration
- 默认值:
0
- 添加In:Hive 0.8.0
事件从事件表到期的持续时间(以秒为单位)。
hive.metastore.event.clean.freq
- 默认值:
0
- 添加In:Hive 0.8.0
计时器任务运行以清除Metastore中过期事件的频率(以秒为单位)。
hive.metastore.connect.retries
- 默认值:3
- 添加In:Hive 0.6.0
打开与Metastore的连接时的重试次数。
hive.metastore.client.connect.retry.delay
- 默认值:
1
- 添加In:Hive 0.7.0
客户端在连续尝试连接之间等待的秒数。
hive.metastore.client.socket.timeout
- 默认值:
20
在Hive 0.7到0.13.1;600
在Hive 0.14.0及更高版本中 - 添加In:Hive 0.7.0; 使用HIVE-7140在Hive 0.14.0中更改了默认值
MetaStore客户端套接字超时,以秒为单位。
hive.metastore.rawstore.impl
- 默认值:
org.apache.hadoop.hive.metastore.ObjectStore
- 添加In:Hive 0.8.1
实现org.apache.hadoop.hive.metastore.rawstore接口的类的名称。此类用于存储和检索原始元数据对象,如表,数据库。
从Hive 3.0开始,有两种实现方式。默认实现(ObjectStore
)直接查询数据库。HIVE-16520引入了一个新的CachedStore
(全类名称 org.apache.hadoop.hive.metastore.cache.CachedStore
),它将检索到的对象缓存在Metastore的内存中。
metastore.cached.rawstore.impl
- 默认值:
org.apache.hadoop.hive.metastore.ObjectStore
- 添加于:Hive 3.0
如果您正在使用CachedStore,那么这是要使用的包装RawStore类的名称。
metastore.cached.rawstore.cache.update.frequency
- 默认值:60
- 添加于:Hive 3.0.0
以秒为单位的时间 - 从Metastore DB更新Metastore缓存。
metastore.cached.rawstore.cached.object.whitelist
- 默认值: 。*
- 添加于:Hive 3.0.0
逗号分隔的正则表达式列表,用于选择将由CachedStore缓存的表(及其分区,统计信息等)。这可以与hive.metastore.cached.rawstore.cached.object.blacklist
。结合使用。
示例:.*, db1.*, db2\.tbl.*.
最后一项可能会覆盖之前指定的模式。
metastore.cached.rawstore.cached.object.blacklist
- 默认值:(空)
- 添加于:Hive 3.0.0
逗号分隔的正则表达式列表,用于过滤掉将由CachedStore缓存的表(及其分区,统计信息等)。这可以与hive.metastore.cached.rawstore.cached.object.whitelist
。结合使用。
示例:db2.*, db3\.tbl1, db3\..*.
最后一项可能会覆盖之前指定的模式。
metastore.cached.rawstore.max.cache.memory
- 默认值:1gb
- 添加于:Hive 3.0.0
缓存对象可以使用的最大内存(以字节为单位)。使用的内存是根据缓存中表和分区的估计大小计算的。将其设置为负值会禁用内存估计。
hive.metastore.batch.retrieve.max
- 默认值:
300
- 添加In:Hive 0.8.0
可以从一个批次中的Metastore中检索最大对象数(表/分区)。数字越大,Hive Metastore服务器所需的往返次数越少,但它也可能导致客户端更高的内存需求。
hive.metastore.ds.connection.url.hook
- 默认值:(空)
- 添加In:Hive 0.6.0
用于检索JDO连接URL的挂钩的名称。如果为空,则使用javax.jdo.option.ConnectionURL中的值。
hive.metastore.ds.retry.attempts
- 默认值:
1
- 添加In:Hive 0.6.0
如果存在连接错误,则重试Metastore调用的次数。
hive.metastore.ds.retry.interval
- 默认值:
1000
- 添加In:Hive 0.6.0
Metastore重试尝试之间的毫秒数。
hive.metastore.server.min.threads
- 默认值:
200
- 添加In:Hive 0.6.0 with HIVE-1270
Thrift服务器池中的最小工作线程数。
hive.metastore.server.max.threads
Thrift服务器池中的最大工作线程数。
hive.metastore.server.max.message.size
- 默认值:
100*1024*1024
- 使用HIVE-8680添加In:Hive 1.1.0(向Hive 1.0.2移植)
Hive Metastore将接受的最大消息大小(以字节为单位)。
hive.metastore.server.tcp.keepalive
- 默认值:
true
- 添加In:Hive 0.6.0
是否为Metastore服务器启用TCP keepalive。Keepalive将防止半开连接的累积。
hive.metastore.sasl.enabled
- 默认值:
false
- 添加In:Hive 0.7.0
如果为true,则将使用SASL保护Metastore thrift接口。客户端必须使用Kerberos进行身份验证。
hive.metastore.kerberos.keytab.file
- 默认值:(空)
- 添加In:Hive 0.7.0
包含Metastore thrift服务器的服务主体的Kerberos Keytab文件的路径。
hive.metastore.kerberos.principal
- 默认值:
hive-metastore/_HOST@EXAMPLE.COM
- 添加In:Hive 0.7.0
Metastore thrift服务器的服务主体。特殊字符串_HOST将自动替换为正确的主机名。
注意:此元数据由Metastore进程用于与其他服务进行身份验证(例如,用于HDFS操作)。
hive.metastore.client.kerberos.principal
- 默认值:(空)
- 添加于:Hive 2.2.1,2.4.0(HIVE-17489)
面向客户端的Hive Metastore的Kerberos服务主体。如果未设置,则默认为为hive.metastore.kerberos.principal设置的值,以实现向后兼容性。
另请参阅 hive.server2.authentication.client.kerberos.principal。
hive.metastore.cache.pinobjtypes
- 默认值:
Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order
- 添加In:Hive 0.7.0
应该在高速缓存中固定的逗号分隔的Metastore对象类型的列表。
hive.metastore.authorization.storage.checks
- 默认值:
false
- 添加In:Hive 0.8.0
如果Metastore对底层存储执行授权检查以执行drop-partition等操作(如果相关用户没有删除存储上相应目录的权限,则禁止drop-partition)。
hive.metastore.thrift.framed.transport.enabled
- 默认值:
false
- 添加In:Hive 0.10.0 with HIVE-2767
如果为true,则Metastore Thrift接口将使用TFramedTransport。如果为false(默认),则使用标准TTransport。
hive.metastore.schema.verification
- 默认值:
false
- 添加In:Hive 0.12.0 with HIVE-3764
实施Metastore架构版本一致性。
True:验证存储在Metastore中的版本信息是否与Hive jar中的版本信息匹配。还禁用自动模式迁移尝试(请参阅datanucleus.autoCreateSchema和datanucleus.schema.autoCreateAll)。用户需要在Hive升级后手动迁移模式,以确保正确的Metastore模式迁移。
False:如果存储在Metastore中的版本信息与来自Hive jar的版本信息不匹配,则发出警告。
有关更多信息,请参阅Metastore架构一致性和升级。
hive.metastore.disallow.incompatible.col.type.changes
- 默认值:
- Hive 0.x和1.x:
false
- Hive 2.x及更高版本:
true
(HIVE-12320)
- Hive 0.x和1.x:
- 添加In:Hive 0.12.0 with HIVE-4409
如果为true,则不允许将列类型(例如STRING)更改为不兼容类型(例如MAP <STRING,STRING>)的ALTER TABLE操作。RCFile默认SerDe(ColumnarSerDe)以这样的方式序列化值,即数据类型可以从字符串转换为任何类型。地图也被序列化为字符串,也可以作为字符串读取。但是,对于任何二进制序列化,情况并非如此。在随后尝试访问旧分区时,阻止ALTER TABLE会阻止ClassCastExceptions。
原始类型(如INT,STRING,BIGINT等)彼此兼容且不会被阻止。
有关详细信息,请参阅HIVE-4409。
hive.metastore.integral.jdo.pushdown
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-6052
允许对Metastore中的整数分区列进行JDO查询下推。默认关闭。这提高了整数列的Metastore性能,尤其是在存在大量分区的情况下。但是,对于未规范化的整数值,它无法正常工作(例如,如果它们具有像0012这样的前导零)。如果启用了Metastore direct SQL并且可以正常工作(hive.metastore.try.direct.sql),则此优化也无关紧要。
hive.metastore.try.direct.sql
- 默认值:
true
- 添加In:Hive 0.12.0 with HIVE-4051
Hive Metastore是否应该尝试使用直接SQL查询而不是DataNucleus来获取某些读取路径。当按照数量级获取许多分区或列统计信息时,这可以提高Metastore性能; 但是,不保证可以在所有RDBMS-es和所有版本上运行。如果SQL失败,Metastore将回退到DataNucleus,因此即使SQL不适用于您的数据存储上的所有查询,它也是安全的。如果所有SQL查询都失败(例如,您的Metastore由MongoDB支持),您可能希望禁用此选项以节省尝试和回退成本。
这可以基于每个客户端使用“set metaconf:hive.metastore.try.direct.sql = <value>”命令进行配置,从Hive 0.14.0(HIVE-7532)开始。
hive.metastore.try.direct.sql.ddl
- 默认值:
true
- 添加In:Hive 0.13.0 with HIVE-5626
与hive.metastore.try.direct.sql相同,用于修改Metastore数据的事务中的read语句。由于Postgres中的非标准行为,如果直接SQL选择查询在事务内部具有不正确的语法或类似内容,则整个事务将失败并且无法回退到DataNucleus。 如果在您的情况下发生这种情况,您应该禁用事务中直接SQL的使用。
这可以在每个客户端的基础上使用“set metaconf:hive.metastore.try.direct.sql.ddl = <value>”命令进行配置,从Hive 0.14.0(HIVE-7532)开始。
hive.metastore.orm.retrieveMapNullsAsEmptyStrings
- 默认值:
false
- 添加In:Hive 1.0.0 with HIVE-8485
Thrift不支持映射中的空值,因此从对象关系映射(ORM)检索的映射中存在的任何空值必须被修剪或转换为空字符串。某些后备数据库(如Oracle)将空字符串保留为空值,因此需要将此参数设置为true
以反转该行为。对于其他人,默认的修剪行为是正确的。
hive.direct.sql.max.query.length
- 默认值:
100
- 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)
由直接SQL生成的查询字符串的最大大小(以KB为单位)。
hive.direct.sql.max.elements.in.claus e
- 默认值:
1000
- 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)
由直接SQL生成的IN子句中的最大值数。一旦超出,它将被分成多个OR分隔的IN子句。
hive.direct.sql.max.elements.values.clause
- 默认值:
1000
- 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)
由直接SQL生成的INSERT语句的VALUES子句中的最大值数。
hive.metastore.port
- 默认值:
9083
- 添加In:Hive 1.3.0 with HIVE-9365
Hive Metastore侦听器端口。
hive.metastore.initial.metadata.count.enabled
- 默认值:
true
- 添加于:Hive 2.1.0 with HIVE-12628
在Metastore启动时为度量标准启用元数据计数。
hive.metastore.limit.partition.request
- 默认值:-1
- 添加In:Hive 2.2.0 with HIVE-13884
这限制了可以从给定表的Metastore请求的分区数。如果尝试获取每个表的更多分区而不是配置的限制,则不会执行查询。值“-1”表示无限制。此参数优先于 hive.limit.query.max.table.partition (不建议使用;在3.0.0中删除)。
hive.metastore.fastpath
- 默认值: false
- 添加In:Hive 2.0.0 with HIVE-9453
用于避免Metastore中的所有代理和对象副本。注意,如果设置了这个,你必须使用一个本地Metastore(hive.metastore.uris
必须为空)否则是未定义的,并且很可能会产生不希望的行为。
Hive Metastore连接池配置
Hive Metastore支持多种连接池实现(例如hikaricp,bonecp,dbcp)。以'hikari'或'dbcp'为前缀的配置属性将按原样传播到Hive的连接池实现。Jdbc连接URL,用户名,密码和连接池最大连接数是例外,必须使用其特殊的Hive Metastore配置属性进行配置。
加入:蜂房3.0.0与 HIVE-17318和 HIVE-17319。
Hive Metastore HBase
Hive 的HBase Metastore的开发始于2.0.0版(HIVE-9452),但工作已经停止,代码在3.0.0版(HIVE-17234)中从Hive中删除。
在版本2.xx中为HBase Metastore创建了更多配置属性 - 这里没有记录它们。有关完整列表,请参阅有关HIVE-17234的文档说明。
hive.metastore.hbase.cache.size
(此处的配置属性永远不应该记录在案,因为它在HIVE-9693初始发布之前已被删除。)
hive.metastore.hbase.cache.ttl
- 默认值:600s
- 添加In:Hive 2.0.0 with HIVE-9453
- 删除:Hive 3.0.0与 HIVE-17234
统计信息项在缓存中的秒数。
hive.metastore.hbase.file.metadata.threads
- 默认值:
1
- 添加In:Hive 2.1.0 with HIVE-12075
用于在后台读取文件元数据以缓存它的线程数。
HiveServer2
HiveServer2在Hive 0.11.0中添加了HIVE-2935。有关更多信息,请参阅HiveServer2概述, 设置HiveServer2和HiveServer2客户端。
除了本节中列出的配置属性外,其他部分还列出了一些HiveServer2属性:
hive.server2.thrift.port
- 默认值:
10000
- 添加In:Hive 0.11.0与 HIVE-2935
HiveServer2 Thrift接口的端口号。可以通过设置$ HIVE_SERVER2_THRIFT_PORT来覆盖。
hive.server2.thrift.bind.host
- 默认值:
localhost
- 添加In:Hive 0.11.0与 HIVE-2935
绑定运行HiveServer2 Thrift接口的主机。可以通过设置$ HIVE_SERVER2_THRIFT_BIND_HOST来覆盖。
hive.server2.thrift.min.worker.threads
- 默认值:
5
- 添加In:Hive 0.11.0与 HIVE-2935
最小Thrift工作线程数。
hive.server2.thrift.max.worker.threads
- 默认值:
100
在Hive 0.11.0中,500
在Hive 0.12.0及更高版本中 - 添加In:带有HIVE-2935的 Hive 0.11.0 ,HIVE-4617在HIVE 0.12.0中更改了默认值
Thrift工作线程的最大数量。
hive.server2.thrift.worker.keepalive.time
- 默认值:
60
- 添加于:Hive 0.14.0与HIVE-7353
空闲工作线程的保持活动时间(以秒为单位)。当工人数量>最小工人时,在此时间间隔后, 多余的线程将被杀死。
hive.server2.thrift.max.message.size
- 默认值:
100*1024*1024
- 添加于:Hive 1.1.0(后向移植到Hive 1.0.2)与HIVE-8680
HiveServer2服务器将接受的最大邮件大小(以字节为单位)。
hive.server2.authentication
- 默认值:
NONE
- 添加In:Hive 0.11.0与 HIVE-2935
客户端验证类型。
NONE:无身份验证检查 - 普通SASL传输
LDAP:基于LDAP / AD的身份验证
KERBEROS:Kerberos / GSSAPI身份验证
CUSTOM:自定义身份验证提供程序(与属性hive.server2.custom.authentication.class一起使用)
PAM:可插入身份验证模块(在Hive中添加) 0.13.0含HIVE-6466)
NOSASL:原料转运(Hive 0.13.0中添加)
hive.server2.authentication.kerberos.keytab
- 默认值:(空)
- 添加In:Hive 0.11.0与 HIVE-2935
服务器主体的Kerberos密钥表文件。
hive.server2.authentication.kerberos.principal
- 默认值:(空)
- 添加In:Hive 0.11.0与 HIVE-2935
Kerberos服务器主体。
hive.server2.authentication.client.kerberos.principal
- 默认值:(空)
- 添加In:Hive 2.1.1,2.4.0 with HIVE-17489
HA HiveServer2使用的Kerberos服务器主体。另请参阅hive.metastore.client.kerberos.principal。
hive.server2.custom.authentication.class
- 默认值:(空)
- 添加In:Hive 0.11.0与 HIVE-2935
自定义验证类。当属性 hive.server2.authentication 设置为'CUSTOM'时使用。提供的类必须是org.apache.hive.service.auth.PasswdAuthenticationProvider接口的正确实现。HiveServer2将调用其Authenticate(用户,传递)方法来验证请求。该实现可以选择性地扩展Hadoop的org.apache.hadoop.conf.Configured类以获取Hive的Configuration对象。
hive.server2.enable.doAs
将此属性设置为true将使HiveServer2在用户进行调用时执行Hive操作。
hive.server2.authentication.ldap.url
- 默认值:(空)
- 添加In:Hive 0.11.0与 HIVE-2935
LDAP连接URL(值)可以是SPACE分隔的URL列表,指向多个LDAP服务器以实现弹性。在连接成功之前,将按指定的顺序尝试URL。
hive.server2.authentication.ldap.baseDN
- 默认值:(空)
- 添加In:Hive 0.11.0与 HIVE-2935
LDAP基本DN(可分辨名称)。
hive.server2.authentication.ldap.guidKey
- 默认值:
uid
- 添加In:Hive 2.1.0 with HIVE-13295
此属性用于指示在为LDAP连接构建bindDN时使用的前缀(仅使用baseDN时)。所以bindDN将是“<guidKey> = <user / group>,<baseDN>”。如果在配置中使用userDNPattern和/或groupDNPattern,则不需要guidKey。只使用baseDN时主要需要。
hive.server2.authentication.ldap.Domain
- 默认值:(空)
- 添加In:Hive 0.12.0 with HIVE-4707
LDAP域。
hive.server2.authentication.ldap.groupDNPattern
- 默认值:(空)
- 添加于:Hive 1.3 with HIVE-7193
COLON分隔的字符串模式列表,用于表示LDAP组的基本DN。使用“%s”(其中插入实际组名称)。有关 详细信息,请参阅 组成员身份。
一个字符串模式的示例:uid =%s,OU = Groups,DC = apache,DC = org
hive.server2.authentication.ldap.groupFilter
- 默认值:(空)
- 添加于:Hive 1.3 with HIVE-7193
用户应该属于的COMMA分隔的组名列表(至少其中一个组),以便成功进行身份验证。有关 详情,请参阅 组成员。
hive.server2.authentication.ldap.groupMembershipKey
- 默认值:
member
- 添加In:Hive 2.1.0 with HIVE-13295
- 扩展于:Hive 2.1.1与HIVE-14513
组对象上的LDAP属性名称,其中包含作为组成员的用户,组和联系人对象的可分辨名称列表。例如:member,uniqueMember或memberUid。
查找特定用户所属的LDAP组名时,此属性用于LDAP搜索查询。此属性指示的LDAP属性值应为用户的完整DN或短用户名或用户ID。例如,包含“member:uid = fooUser,ou = Users,dc = domain,dc = com”的“fooGroup”的组条目将帮助确定“fooUser”属于LDAP组“fooGroup”。
有关详细示例,请参阅组成员身份
如果自定义配置的LDAP查询返回组而不是用户(从Hive 2.1.1开始),则此属性还可用于 查找用户。有关详细信息,请参阅自定义LDAP查询中的组支持。
hive.server2.authentication.ldap.userMembershipKey
- 默认值:null
- 添加于:Hive 2.2.0 with HIVE-15076
用户对象上的LDAP属性名称,其中包含用户是直接成员的组,主要组除外,该组由primaryGroupId表示。例如:memberOf。
hive.server2.authentication.ldap.groupClassKey
- 默认值:
groupOfNames
- 添加于:Hive 1.3 with HIVE-13295
此属性在LDAP搜索查询中用于查找用户所属的LDAP组名。此属性的值用于构造LDAP组搜索查询,用于指示组的objectClass是什么。每个LDAP组都有某些objectClass。例如:group,groupOfNames,groupOfUniqueNames等。
有关 详细示例,请参阅 组成员身份
hive.server2.authentication.ldap.userDNPattern
- 默认值:(空)
- 添加于:Hive 1.3 with HIVE-7193
COLON分隔的字符串模式列表,用于表示LDAP用户的基本DN。使用“%s”(其中插入实际用户名)。有关 详细信息,请参阅 用户搜索列表。
一个字符串模式的示例:uid =%s,OU = Users,DC = apache,DC = org
hive.server2.authentication.ldap.userFilter
- 默认值:(空)
- 添加于:Hive 1.3 with HIVE-7193
以COMMA分隔的用户名列表,如果在LDAP中找到用户,则认证将成功。有关 详情,请参阅 用户搜索列表
hive.server2.authentication.ldap.customLDAPQuery
- 默认值:(空)
- 添加于:Hive 1.3 with HIVE-7193
用户指定的自定义LDAP查询,用于授予/拒绝身份验证请求。如果用户是查询结果集的一部分,则身份验证成功。有关 详细信息,请参阅 自定义查
hive.server2.authentication.ldap.binddn
- 默认值:(空)
- 添加于:Hive 4.0 with HIVE-21009
指定绑定到LDAP进行身份验证时使用的完全限定域用户,而不是使用用户本身。这允许所有用户在LDAP上没有搜索权限的情况,而只需要绑定用户具有搜索权限。
可能值的示例:uid = binduser,OU = Users,DC = apache,DC = org
hive.server2.authentication.ldap.bindpw
- 默认值:(空)
- 添加于:Hive 4.0 with HIVE-21009
绑定域名的密码。可以直接在配置文件中指定此密码,也可以在集群的凭据提供程序中指定此密码。如果设置了hive.server2.authentication.ldap.binddn,则必须在某处设置此设置。
hive.server2.global.init.file.location
HiveServer2全局init文件的位置或包含.hiverc文件的目录。如果设置了该属性,则该值必须是init文件所在的init文件或目录的有效路径。
hive.server2.transport.mode
- 默认值:
binary
- 添加In:Hive 0.12.0
- 不推荐使用:带有HIVE-6972的 Hive 0.14.0 (请参阅HiveServer2在HTTP模式下运行时的连接URL)但仅适用于客户端。此设置仍在使用中,并且不会弃用HiveServer2本身。
服务器传输模式。值可以是“二进制”或“http”。
hive.server2.thrift.http.port
- 默认值:
10001
- 添加In:Hive 0.12.0
处于HTTP模式时的端口号。
hive.server2.thrift.http.path
- 默认值:
cliservice
- 添加In:Hive 0.12.0
- 不推荐使用:带有HIVE-6972的 Hive 0.14.0 (请参阅 HiveServer2在HTTP模式下运行时的连接URL)
处于HTTP模式时URL端点的路径组件。
hive.server2.thrift.http.min.worker.threads
- 默认值:
5
- 添加In:Hive 0.12.0
处于HTTP模式时的最小工作线程数。
hive.server2.thrift.http.max.worker.threads
- 默认值:
500
- 添加In:Hive 0.12.0
处于HTTP模式时的最大工作线程数。
hive.server2.thrift.http.max.idle.time
-
默认值:1800s(即1800秒)
- 添加于:HIV -7169中的 Hive 0.14.0
处于HTTP模式时服务器上连接的最大空闲时间。
hive.server2.thrift.http.worker.keepalive.time
- 默认值:60
- 在HIVE-7353中添加In:Hive 0.14.0
空闲的http工作线程的保持活动时间(以秒为单位)。当工人数量>最小工人时,在此时间间隔后, 多余的线程将被杀死。
hive.server2.thrift.sasl.qop
- 默认值:
auth
- 添加In:Hive 0.12.0
Sasl QOP值; 将其设置为以下值之一,以便为HiveServer2与客户端的通信启用更高级别的保护。
“auth” - 仅限身份验证(默认)
“auth-int” - 身份验证和完整性保护
“auth-conf” - 身份验证加完整性和机密性保护
请注意,在大多数情况下,将hadoop.rpc.protection设置为比HiveServer2更高的级别是没有意义的。HiveServer2忽略hadoop.rpc.protection而转而使用hive.server2.thrift.sasl.qop。
仅当HiveServer2配置为使用Kerberos身份验证时,此选项才适用。
hive.server2.async.exec.threads
- 默认值:
50
在Hive 0.12.0中,100
在Hive 0.13.0及更高版本中 - 添加In:Hive 0.12.0 with HIVE-4617,默认值在Hive 0.13.0中更改为HIVE-5229
HiveServer2的异步线程池中的线程数。
hive.server2.async.exec.shutdown.timeout
- 默认值:
10
- 添加In:Hive 0.12.0 with HIVE-4617
HiveServer2关闭等待异步线程终止的时间(以秒为单位)。
hive.server2.table.type.mapping
此设置反映了HiveServer2将如何报告JDBC的表类型以及检索可用表和支持的表类型的其他客户端实现。
HIVE:暴露Hive的本机表类型,如MANAGED_TABLE,EXTERNAL_TABLE,VIRTUAL_VIEW
CLASSIC:更多泛型类型,如TABLE和VIEW
hive.server2.session.hook
- 默认值:(空)
- 添加In:Hive 0.12.0 with HIVE-4588
HiveServer2的会话级挂钩。
hive.server2.max.start.attempts
- 默认值:
30
- 添加In:Hive 0.13.0 with HIVE-5794
HiveServer2在退出之前尝试启动的次数,在重试之间休眠60秒。默认值30将继续尝试30分钟。
hive.server2.async.exec.wait.queue.size
- 默认值:
100
- 添加In:Hive 0.13.0 with HIVE-5229
HiveServer2中异步线程池的等待队列大小。达到此限制后,异步线程池将拒绝新请求。
hive.server2.async.exec.keepalive.time
- 默认值:
10
- 添加In:Hive 0.13.0 with HIVE-5229
空闲HiveServer2异步线程(来自线程池)在终止之前等待新任务到达的时间(以秒为单位)。
hive.server2.long.polling.timeout
- 默认值:
5000L
- 添加In:Hive 0.13.0 with HIVE-5217
在响应使用长轮询的异步调用之前,HiveServer2将等待的时间(以毫秒为单位)。
hive.server2.allow.user.substitution
- 默认值:
true
- 添加In:Hive 0.13.0
允许将备用用户指定为HiveServer2打开连接请求的一部分。
hive.server2.authentication.spnego.keytab
- 默认值:(空)
- 添加In:Hive 0.13.0
SPNEGO主体的Keytab文件,可选。典型值看起来像/etc/security/keytabs/spnego.service.keytab
。启用Kerberos安全性并使用HTTP传输模式时,HiveServer2将使用此密钥表。仅当要在身份验证中使用SPNEGO时才需要设置此项。
仅当 指定了有效的hive.server2.authentication.spnego.principal 和 hive.server2.authentication.spnego.keytab时,才会遵守SPNEGO身份验证 。
hive.server2.authentication.spnego.principal
- 默认值:(空)
- 添加In:Hive 0.13.0
SPNEGO服务主体,可选。典型值看起来像HTTP/_HOST@EXAMPLE.COM
。启用Kerberos安全性并使用HTTP传输模式时,HiveServer2将使用SPNEGO服务主体。仅当要在身份验证中使用SPNEGO时才需要设置此项。
hive.server2.authentication.pam.services
- 默认值:(空)
- 添加In:Hive 0.13.0 with HIVE-6466
当hive.server2.authentication 类型为PAM 时应使用的基础PAM服务的列表。/etc/pam.d中必须存在具有相同名称的文件。
hive.server2.use.SSL
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-5351
将此设置为true以在HiveServer2中使用SSL加密。
hive.server2.keystore.path
- 默认值:(空)
- 添加In:Hive 0.13.0 with HIVE-5351
SSL证书密钥库位置。
hive.server2.keystore.password
- 默认值:(空)
- 添加In:Hive 0.13.0 with HIVE-5351
SSL证书密钥库密码。
hive.server2.tez.default.queues
- 默认值:(空)
- 添加In:Hive 0.13.0 with HIVE-6325
与同名的YARN队列对应的逗号分隔值列表。在Tez模式下启动HiveServer2时,需要为多个Tez会话设置此配置,以便在群集上并行运行。
hive.server2.tez.sessions.per.default.queue
- 默认值:
1
- 添加In:Hive 0.13.0 with HIVE-6325
一个正整数,用于确定应在hive.server2.tez.default.queues指定的每个队列上启动的Tez会话数。确定每个队列的并行度。
hive.server2.tez.initialize.default.sessions
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-6325
此标志在HiveServer 2中使用,使用户无需为HiveServer 2打开Tez即可使用HiveServer 2.用户可能希望在没有会话池的情况下在Tez上运行查询。
hive.server2.session.check.interval
- 默认值:
- Hive 0.x,1.0.x,1.1.x,1.2.0:
0ms
- 蜂房1.2.1+,1.3+,2.X +:
6h
(HIVE-9842)
- Hive 0.x,1.0.x,1.1.x,1.2.0:
- 添加In:Hive 0.14.0 with HIVE-5799
会话/操作超时的检查间隔,可以通过设置为零或负值来禁用。
hive.server2.idle.session.timeout
- 默认值:
- Hive 0.x,1.0.x,1.1.x,1.2.0:
0ms
- Hive 1.2.1 +,1.3 +,2.x +:7d (HIVE-9842)
- Hive 0.x,1.0.x,1.1.x,1.2.0:
- 添加In:Hive 0.14.0 with HIVE-5799
将 hive.server2.session.check.interval 设置为正时间值时,会话将在此持续时间内未被访问时关闭,可以通过设置为零或负值来禁用会话。
hive.server2.idle.operation.timeout
- 默认值:0ms
- 添加In:Hive 0.14.0 with HIVE-5799
将 hive.server2.session.check.interval设置为正时间值 时,在此持续时间内未访问操作时将关闭操作,可以通过设置为零值来禁用操作。
使用正值时,仅检查终端状态下的操作(已完成,已取消,已关闭,错误)。
使用负值时,无论状态如何,都会检查所有操作。
hive.server2.logging.operation.enabled
如果为true,HiveServer2将保存操作日志并使其可供客户端使用。
hive.server2.logging.operation.log.location
如果启用了日志记录功能,则存储操作日志的顶级目录。
hive.server2.logging.operation.verbose
- 默认值:
false
- 添加In:Hive 0.14.0 with HIVE-8785
- 删除:Hive 1.2.0 with HIVE-10119
何时true
,HiveServer2操作日志可用于客户端将是详细的。由hive.server2.logging.operation.level替换为Hive 1.2.0 。
hive.server2.logging.operation.level
- 默认值:执行
- 添加In:Hive 1.2.0 with HIVE-10119
HiveServer2操作日志记录模式可供客户端在会话级别设置。
为此,hive.server2.logging.operation.enabled应设置为true。允许的值是:
- 无:忽略任何日志记录。
- 执行:记录任务完成情况。
- 性能:执行+性能日志。
- VERBOSE:所有日志。
hive.server2.thrift.http.cookie.auth.enabled
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-9710
如果为true,则HTTP传输模式下的HiveServer2将使用基于cookie的身份验证机制。
hive.server2.thrift.http.cookie.max.age
- 默认值:
86400s
(1天) - 添加In:Hive 1.2.0 with HIVE-9710
HiveServer2在HTTP模式下使用的服务器端cookie的最大年龄(以秒为单位)。
hive.server2.thrift.http.cookie.path
- 默认值:(空)
- 添加In:Hive 1.2.0 with HIVE-9710
HiveServer2生成cookie的路径。
hive.server2.thrift.http.cookie.domain
- 默认值:(空)
- 添加In:Hive 1.2.0 with HIVE-9710
HiveServer2生成cookie的域。
hive.server2.thrift.http.cookie.is.secure
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-9710
HiveServer2生成的cookie的安全属性。
hive.server2.thrift.http.cookie.is.httponly
- 默认值:
true
- 添加In:Hive 1.2.0 with HIVE-9710
HiveServer2生成cookie的HttpOnly属性。
hive.server2.close.session.on.disconnect
- 默认值:
true
- 添加In:Hive 2.1.0 with HIVE-13415
连接关闭时会话将关闭。将此设置为false可使会话比其父连接更长。
hive.server2.xsrf.filter.enabled
- 默认值:
false
- 添加In:Hive 2.2.0 with HIVE-13853
如果启用,HiveServer2将阻止通过HTTP向其发出的任何请求(如果不存在X-XSRF-HEADER标头)。
hive.server2.job.credential.provider.path
- 默认值:(空)
- 添加In:Hive 2.2.0 with HIVE-14822
此配置属性使用户能够提供以逗号分隔的URL列表,这些URL提供Hadoop凭据提供程序的类型和位置。HiveServer2使用这些凭据提供程序提供使用MR或Spark执行引擎启动的作业特定凭证。此功能尚未针对Tez进行测试。
hive.server2.in.place.progress
- 默认值:
true
- 添加In:Hive 2.2.0 with HIVE-15473
允许HiveServer2发送进度条更新信息。这仅在 执行引擎 是 tez时才可用。
hive.hadoop.classpath
- 默认值:(空)
- 添加In:Hive 0.14.0 with HIVE-8340
对于Windows操作系统,Hive需要在使用“ -hiveconf hive.hadoop.classpath=%HIVE_LIB%
” 启动HiveServer2时传递HIVE_HADOOP_CLASSPATH Java参数。用户可以在hiveserver2.xml中设置此参数。
HiveServer2 Web UI
HiveServer2的Web界面在2.0.0版中引入(请参阅HiveServer2的Web UI)。
hive.server2.webui.host
- 默认值:
0.0.0.0
- 添加In:Hive 2.0.0 with HIVE-12338
HiveServer2 Web UI将侦听的主机地址。Web UI可用于访问HiveServer2配置,本地日志和指标。它还可用于检查有关正在执行的活动会话和查询的一些信息。
hive.server2.webui.port
- 默认值:
10002
- 添加In:Hive 2.0.0与 HIVE-12338 和HIVE-12711
HiveServer2 Web UI将侦听的端口。设置为0或负数以禁用HiveServer2 Web UI功能。
hive.server2.webui.max.threads
- 默认值:
50
- 添加In:Hive 2.0.0 with HIVE-12338
HiveServer2 Web UI线程的最大数量。
hive.server2.webui.max.historic.queries
- 默认值:25
- 添加In:Hive 2.1.0 with HIVE-12550
HiveServer2 Web UI中显示的最大过去查询数。
hive.server2.webui.use.ssl
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-12471 和HIVE-12485
将此设置为true表示对HiveServer2 WebUI使用SSL加密。
hive.server2.webui.keystore.path
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12471
HiveServer2 WebUI的SSL证书密钥库位置。
hive.server2.webui.keystore.password
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12471
HiveServer2 WebUI的SSL证书密钥库密码。
hive.server2.webui.use.spnego
- 默认值:
false
- 添加In:Hive 2.0.0 with HIVE-12485
HiveServer2 WebUI的SSL证书密钥库密码。
hive.server2.webui.spnego.keytab
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12485
包含HiveServer2 WebUI SPNEGO服务主体的Kerberos Keytab文件的路径。
hive.server2.webui.spnego.principal
- 默认值:
HTTP/_HOST@EXAMPLE.COM
- 添加In:Hive 2.0.0 with HIVE-12485
HiveServer2 WebUI SPNEGO服务主体。特殊字符串_HOST将自动替换为hive.server2.webui.host的值或正确的主机名。
hive.server2.webui。解释。放
- 默认值:
false
- 添加于:Hive 3.1.0 with HIVE-18469
当此配置属性设置为true时,查询的 EXPLAIN EXTENDED输出将显示在WebUI / Drilldown / Query Plan选项卡中。
在Hive 3.1.0之前,您可以使用hive.log.explain.output而不是此配置属性。
hive.server2.webui.show.graph
- 默认值:
false
- 添加于:Hive 4.0.0 with HIVE-17300
将此属性设置为true可将查询计划显示为图形,而不是WebUI中的文本。仅适用于 hive.server2.webui.explain.output 设置为true。
hive.server2.webui.max.graph.size
- 默认值:
25
- 添加于:Hive 4.0.0 with HIVE-17300
可以显示最多阶段图。如果阶段数超过此数量,则不会显示任何查询计划。仅在 hive.server2.webui.show.graph 和 hive.server2.webui.explain.output 设置为true时有效。
hive.server2.webui.show.stats
- 默认值:
false
- 添加于:Hive 4.0.0 with HIVE-17300
将此属性设置为true可在WebUI中显示MapReduce任务的统计信息和日志文件。仅在 hive.server2.webui.show.graph 和 hive.server2.webui.explain.output 设置为true时有效。
火花
Apache的星火在蜂巢加入1.1.0 (HIVE-7292和合并到主干JIRA的HIVE-9257,9352,9448)。有关信息,请参阅设计文档 Hive on Spark和 Hive on Spark:入门。
要将Hive执行配置为Spark,请将以下属性设置为“ spark
”:
除了本节中列出的配置属性外,其他部分的一些属性也与Spark相关:
hive.spark.job.monitor.timeout
作业监视器超时以获得Spark作业状态。
hive.spark.dynamic.partition.pruning
- 默认值:
false
- 添加In:Hive 1.3.0 with HIVE-9152
如果为true,则会为Spark引擎启用动态分区修剪,以便通过写入临时HDFS文件来处理分区键上的连接,并稍后读取以删除不必要的分区。
hive.spark.dynamic.partition.pruning.map.join.only
- 默认值:
false
- 添加In:Hive 3.0.0 with HIVE-16998
与此类似hive.spark.dynamic.partition.pruning
,但只有在分区表上的连接可以转换为映射连接时才启用DPP。
hive.spark.dynamic.partition.pruning.max.data.size
- 默认值:
100MB
- 添加In:Hive 1.3.0 with HIVE-9152
生成分区修剪信息的维度表的最大数据大小。如果达到此限制,将关闭优化。
hive.spark.exec.inplace.progress
- 默认值:
true
- 添加于:Hive 2.2.0 with HIVE-15039
在终端中就地更新Spark作业执行进度。
hive.spark.use.file.size.for.mapjoin
- 默认值:
false
- 添加于:Hive 2.3.0 with HIVE-15489
- 删除:Hive 3.0.0 with HIVE-16336,替换为 hive.spark.use.ts.stats.for.mapjoin
如果将此设置为true,则Hive / Spark中的mapjoin优化将使用与运算符树根上的TableScan运算符关联的源文件大小,而不是使用运算符统计信息。
hive.spark.use.ts.stats.for.mapjoin
- 默认值:
false
- 添加In:Hive 3.0.0 with HIVE-16336,替换 hive.spark.use.file.size.for.mapjoin
如果将此设置为true,则Hive / Spark中的mapjoin优化将使用运算符树根处的TableScan运算符的统计信息,而不是Join运算符的父ReduceSink运算符。
hive.spark.explain.user
- 默认值:
false
- 添加In:Hive 3.0.0 with HIVE-11133
是否 在 Hive-on-Spark查询的用户级别显示解释结果。启用后,将在用户级别记录查询的EXPLAIN输出。
hive.prewarm.spark.timeout
- 默认值: 5000ms
- 添加In:Hive 3.0.0 with HIVE-17362
当hive.prewarm.enabled 为true 时,等待完成预热 Spark执行器的时间 。
注意:Hiz on Spark的这些配置属性记录在 Tez部分中, 因为它们也会影响Tez:
hive.spark.optimize.shuffle.serde
- 默认值:
false
- 添加In:Hive 3.0.0 with HIVE-15104
如果将其设置为true,则Spark上的Hive将为shuffle中的数据类型注册自定义序列化程序。这应该可以减少数据的混乱。
hive.merge.sparkfiles
- 默认值:
false
- 添加In:Hive 1.1.0 with HIVE-7810
在Spark DAG Transformation结束时合并小文件。
hive.spark.session.timeout.period
- 默认值:30分钟
- 添加In:Hive 4.0.0 with HIVE-14162
Spark Remote Driver在关闭之前应等待Spark作业提交的时间。如果在这段时间后没有启动Spark作业,Spark Remote Driver将关闭,从而释放它所持有的所有资源。权衡的是,在同一会话中运行的任何新的Hive-on-Spark查询都必须等待新的Spark Remote Driver启动。好处是,对于长时间运行的Hive会话,Spark Remote Driver不会不必要地保留资源。最低值为30分钟。
hive.spark.session.timeout.period
- 默认值:60秒
- 添加In:Hive 4.0.0 with HIVE-14162
检查空闲Spark会话的频率。最小值为60秒。
hive.spark.use.op.stats
- 默认值:
true
- 添加于:Hive 2.3.0 with HIVE-15796
是否使用运算符统计信息来确定Hive on Spark的reducer并行性。 如果这是错误的,Hive将使用源表统计信息来确定 所有第一级reduce任务的reducer并行度,以及所有其余(第二级和之后)reducer任务的所有父级的最大reducer并行 度。
将此设置为false会触发另一种算法,用于计算每个Spark shuffle的分区数。这种新算法通常会导致每次shuffle的分区数量增加。
hive.spark.use.ts.stats.for.mapjoin
- 默认值:
false
- 添加于:Hive 2.3.0 with HIVE-15489
如果设置为true,则Hive / Spark中的mapjoin优化将使用运算符树根处的TableScan运算符的统计信息,而不是Join运算符的父ReduceSink运算符。当用于公共连接→映射连接转换的运算符统计信息不准确时,将此设置为true非常有用。
hive.spark.use.groupby.shuffle
- 默认值:
true
- 添加于:Hive 2.3.0 with HIVE-15580
设置为true时,使用Spark RDD#groupByKey
来执行group bys。设置为false时,使用Spark RDD#repartitionAndSortWithinPartitions
来执行group bys。虽然 #groupByKey
在运行group by时具有更好的性能,但它可以使用过多的内存。将此设置为false可能会减少内存使用量,但会损害性能。
mapreduce.job.reduces
- 默认值:-1(已禁用)
- 添加于:Hive 1.1.0 with HIVE-7567
设置每个Spark shuffle阶段的reduce任务数(例如,执行Spark shuffle时的分区数)。默认设置为-1(禁用); 相反,基于Hive数据统计信息动态计算reduce任务的数量。将此值设置为常量值会为所有Spark shuffle阶段设置相同数量的分区。
远程Spark驱动程序
远程Spark驱动程序是在Spark集群中启动的应用程序,它提交实际的Spark作业。它是在HIVE-8528中引入的 。它是在当前用户的第一个查询时初始化的长期应用程序,一直运行直到用户的会话关闭。以下属性控制远程Spark驱动程序和生成它的Hive客户端之间的远程通信。
hive.spark.client.future.timeout
从Hive客户端到远程Spark驱动程序的请求超时。
hive.spark.client.connect.timeout
远程Spark驱动程序在连接回Hive客户端时超时。
hive.spark.client.server.connect.timeout
- 默认值:
90000
毫秒 - 添加In:Hive 1.1.0 with HIVE-9337,默认情况下在HIVE-9519的同一版本中更改
Hive客户端和远程Spark驱动程序之间的握手超时。经过两个流程检查。
hive.spark.client.secret.bits
生成的秘密中随机性的位数,用于Hive客户端和远程Spark驱动程序之间的通信。舍入到最接近的8的倍数。
hive.spark.client.rpc.server.address
HiverServer2主机的服务器地址,用于Hive客户端和远程Spark驱动程序之间的通信。
hive.spark.client.rpc.threads
远程Spark驱动程序的RPC事件循环的最大线程数。
hive.spark.client.rpc.max.size
Hive客户端和远程Spark驱动程序之间通信的最大消息大小(字节)。默认值为50 MB。
hive.spark.client.channel.log.level
远程Spark驱动程序的通道日志记录级别 DEBUG,ERROR,INFO,TRACE,WARN之一。如果未设置,则选择TRACE。
TEZ
Apache Tez被添加到Hive 0.13.0(HIVE-4660和HIVE-6098)中。有关信息,请参阅设计文档Hive on Tez,尤其是“ 安装和配置”部分。
除了本节中列出的配置属性外,其他部分的一些属性也与Tez相关:
- hive.execution.engine
- hive.server2.tez.default.queues
- hive.server2.tez.sessions.per.default.queue
- hive.server2.tez.initialize.default.sessions
- hive.stats.max.variable.length
- hive.stats.list.num.entries
- hive.stats.map.num.entries
- hive.stats.map.parallelism (仅限Hive 0.13;在Hive 0.14中删除)
- hive.stats.join.factor
- hive.stats.deserialization.factor
- hive.tez.dynamic.semijoin.reduction
- hive.tez.min.bloom.filter.entries
- hive.tez.max.bloom.filter.entries
- hive.tez.bloom.filter.factor
- hive.tez.bigtable.minsize.semijoin.reduction
- hive.explain.user
hive.jar.directory
这是Tez模式中的Hive将查找以查找站点范围内安装的Hive实例的位置。有关默认行为,请参阅 hive.user.install.directory。
hive.user.install.directory
- 默认值:
hdfs:///user/
- 添加In:带有HIVE-5003 和 HIVE-6098的 Hive 0.13.0
如果Hive(仅在Tez模式下)无法在hive.jar.directory中找到可用的Hive jar ,它会将Hive jar上传到< hive.user.install.directory > / < user_name >并使用它来运行查询。
是在本地生成拆分还是在ApplicationMaster中生成拆分(仅限Tez)。
hive.rpc.query.plan
是否通过本地资源或RPC发送查询计划。
hive.prewarm.enabled
为Tez(0.13.0到1.2.x)或Tez / Spark(1.3.0+)启用容器预热。这仅适用于Hadoop 2。
hive.prewarm.numcontainers
控制Tez(0.13.0至1.2.x)或Tez / Spark(1.3.0+)预热的容器数量。这仅适用于Hadoop 2。
hive.merge.tezfiles
合并Tez DAG末尾的小文件。
hive.tez.input.format
- 默认值:
org.apache.hadoop.hive.ql.io.HiveInputFormat
- 添加In:Hive 0.13.0含有 HIVE-6498 和 HIVE-6360
Tez的默认输入格式。Tez组在AM(ApplicationMaster)中拆分。
hive.tez.input.generate.consistent.splits
- 默认值:
true
- 添加于:Hive 2.1.0,含有HIVE-9850, HIVE-10104和HIVE-12078
在AM中生成拆分时是否生成一致的拆分位置。
设置为false会根据线程的生成方式随机化分割的位置和顺序。
与LLAP有关。
hive.tez.container.size
默认情况下,Tez将生成一个mapper大小的容器。这可以用来覆盖默认值。
hive.tez.java.opts
默认情况下,Tez将使用map任务中的Java选项。这可以用来覆盖默认值。
hive.convert.join.bucket.mapjoin.tez
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-6447
当Tez用作执行引擎时,联接是否可以自动转换为Hive中的桶映射连接(hive.execution.engine设置为“ tez
”)。
hive.tez.log.level
- 默认值:
INFO
- 添加In:Hive 0.13.0 with HIVE-6743
用于作为DAG一部分执行的任务的日志级别。仅在使用hive.tez.java.opts配置Java选项时使用。
hive.localize.resource.wait.interval
- 默认值:
5000
- 添加In:Hive 0.13.0 with HIVE-6782
等待另一个线程为Hive-Tez本地化相同资源的时间(以毫秒为单位)。
hive.localize.resource.num.wait.attempts
- 默认值:
5
- 添加In:Hive 0.13.0 with HIVE-6782
等待在Hive-Tez中本地化资源的尝试次数。
hive.tez.smb.number.waves
- 默认值:
0.5
- 添加In:Hive 0.14.0 with HIVE-8409
运行SMB(sort-merge-bucket)连接的wave数。占用集群的帐户。理想情况下应该是1波。
hive.tez.cpu.vcores
- 默认值:
-1
- 添加In:Hive 0.14.0 with HIVE-8452
默认情况下,Tez会要求将每个容器使用的MapReduce配置为多个CPU。这可以用来覆盖默认值。
hive.tez.auto.reducer.parallelism
- 默认值:
false
- 添加In:Hive 0.14.0 with HIVE-7158
打开Tez'自动减速器并行功能。启用后,Hive仍会估算数据大小 并设置并行度估计值。Tez将对源顶点的输出大小进行采样,并在运行时根据 需要调整估计值。
hive.tez.max.partition.factor
- 默认值:
2
- 添加In:Hive 0.14.0 with HIVE-7158
当 汽车减速并行 启用此因素将在洗牌中使用过度分区数据 的边缘。
hive.tez.min.partition.factor
- 默认值:
0.25
- 添加In:Hive 0.14.0 with HIVE-7158
当汽车减速并行启用此因素将被用来把一个下限数量 减速器是TEZ指定。
hive.tez.exec.print.summary
- 默认值:
false
- 添加In:Hive 0.14.0 with HIVE-8495
如果为true,则显示在Hive CLI 或Beeline客户端上执行的每个查询的执行步骤细分。
hive.tez.exec.inplace.progress
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-8495
使用Hive CLI时,更新终端中的Tez作业执行进度。
LLAP
在Hive 2.0(HIVE-7926和相关任务)中添加了Live Long and Process(LLAP)功能。有关详细信息,请参阅Hive中的LLAP。
LLAP添加以下配置属性。
hive.llap.execution.mode
- 默认值:
none
- 可能的值:
none: not tried
-
map: only map operators are considered for llap
all: every operator is tried; but falls back to no-llap in case of problems
only: same as "all" but stops with an exception if execution is not possible
(截至2.2.0与HIVE-15135)-
auto:转换由hive控制
- 添加In:Hive 2.0.0 with HIVE-9635
选择查询片段是在容器中还是在LLAP中运行。当 设置为“ all
”一切都在LLAP如果可能的运行; “ only
”类似于“ all
”但禁止回退到容器,因此如果查询无法在LLAP中运行,则查询将失败。
hive.server2.llap.concurrent.queries
- 默认值:-1
- 添加In:Hive 2.0.0 with HIVE-10647
通过llap并行允许的查询数。负数意味着“无限”。
LLAP客户端
hive.llap.client.consistent.splits
- 默认值:false
- 添加In:Hive 2.0.0 with HIVE-12470
是否设置拆分位置以匹配运行LLAP守护程序的节点,而不是使用拆分本身提供的位置。
LLAP Web服务
hive.llap.daemon.web.port
- 默认值:15002
- 添加In:Hive 2.0.0 with HIVE-11358
LLAP守护程序Web UI端口。
hive.llap.daemon.web.ssl
- 默认值:false
- 添加In:Hive 2.0.0 with HIVE-11358
LLAP守护程序Web UI是否应使用SSL
hive.llap.auto.auth
- 默认值:true
- 添加In:Hive 2.0.0 with ..
是否设置Hadoop配置以在LLAP Web应用程序中启用身份验证。
hive.llap.daemon.service.principal
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12341
LLAP守护程序的服务主体的名称。
hive.llap.daemon.service.hosts
- 默认值:null
- 添加In:Hive 2.0.0与HIVE-11358和HIVE-12470
明确指定用于LLAP调度的主机。有用于测试。默认情况下,使用YARN注册表。
hive.llap.daemon.task.preemption.metrics.intervals
- 默认值:30,60,300
- 添加于:Hive 2.1.0 with HIVE-13536
以逗号分隔的整数集,表示百分位延迟指标的所需翻转间隔(以秒为单位)。
由LLAP守护程序任务计划程序度量标准使用,用于终止任务(由于抢占)所花费的时间以及即将被抢占的任务所浪费的有用时间。
LLAP缓存
hive.llap.object.cache.enabled
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-9849
在LLAP中缓存对象(计划,哈希表等)
hive.llap.io.use.lrfu
- 默认值:false
- 添加In:Hive 2.0.0 with ..
ORC低级缓存是否应使用最低频繁/常用(LRFU)缓存策略而不是默认的先进先出(FIFO)。
hive.llap.io.lrfu.lambda
- 默认值:0.01f
- 可能的值:介于0和1之间
- 添加In:Hive 2.0.0 with ..
Lambda用于ORC低级缓存LRFU缓存策略。必须在[0,1]中。
0使LRFU表现得像LFU,1使其表现得像LRU,相应的值之间的平衡。
LLAP I / O.
hive.llap.io.enabled
- 默认值:null
- 添加In:Hive 2.0.0,更新了HIVE-12078
是否启用LLAP I / O层。删除属性或设置为false以禁用LLAP I / O.
hive.llap.io.cache.orc.size
- 默认值:1Gb
- 添加In:Hive 2.0.0 with ..
IO分配器或ORC低级缓存的最大大小。
hive.llap.io.threadpool.size
- 默认值:10
- 添加In:Hive 2.0.0 with HIVE-10081
指定用于低级IO线程池的线程数。
hive.llap.io.orc.time.counters
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-10777
是否为LLAP IO层启用时间计数器(在HDFS中花费的时间等)
hive.llap.io.memory.mode
- 默认值:缓存
- 可能的值:cache,allocator,none
- 添加In:Hive 2.0.0 with HIVE-12597
LLAP IO内存使用情况;
'cache'(默认值)使用带有自定义堆外分配器的数据和元数据缓存,
'allocator'使用不带缓存的自定义分配器,
'none'也不使用(此模式可能导致性能显着下降)
hive.llap.io.allocator.alloc.min
- 默认值:128Kb
- 添加In:Hive 2.0.0 with HIVE-12597
LLAP伙伴分配器可能的最小分配。下面的分配填充到最小分配。
对于ORC,通常应与预期的压缩缓冲区大小相同,或者下一个最低功率为2.必须是2的幂。
hive.llap.io.allocator.alloc.max
- 默认值:16Mb
- 添加In:Hive 2.0.0 with HIVE-12597
LLAP伙伴分配器可能的最大分配。对于ORC,应该与最大预期的ORC压缩缓冲区大小一样大。必须是2的幂。
hive.llap.io.allocator.arena.count
- 默认值:8
- 添加In:Hive 2.0.0 with HIVE-12597
竞技场计数LLAP低级缓存; 缓存将以(size / arena_count)个字节的步骤分配。此大小必须<= 1Gb且> =最大分配; 如果不是这种情况,将使用调整后的尺寸。建议使用2的幂。
hive.llap.io.memory.size
- 默认值:1Gb
- 添加In:Hive 2.0.0 with HIVE-12597
IO分配器或ORC低级缓存的最大大小。
hive.llap.io.allocator.direct
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-12597
ORC低级缓存是否应该使用直接分配。
hive.llap.io .allocator.nmap
- 默认值:false
- 添加In:Hive 2.1.0 with HIVE-13029
ORC低级缓存是否应使用内存映射分配(直接I / O)
hive.llap.io .allocator.nmap.path
- 默认值:/ tmp
- 添加In:Hive 2.1.0 with HIVE-13029
用于将NVDIMM / NVMe闪存存储映射到ORC低级缓存的目录位置。
LLAP CBO
hive.llap.auto.allow.uber
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-9777
是否允许计划程序在AM中运行顶点。
hive.llap.auto.enforce.tree
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-9635
在考虑顶点之前强制所有父母都处于困境中
hive.llap.auto.enforce.vectorized
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-9635
在考虑顶点之前,强制对输入进行矢量化
hive.llap.auto.enforce.stats
- 默认值:true
- 添加In:Hive 2.0.0 with HIVE-9635
在考虑顶点之前,强制使用列统计信息。
hive.llap.auto.max.input.size
- 默认值:10 * 1024 * 1024 * 1024L
- 添加In:Hive 2.0.0 with HIVE-9635
在考虑顶点之前检查输入大小(-1禁用检查)
hive.llap.auto.max.output.size
- 默认值:1 * 1024 * 1024 * 1024L
- 添加In:Hive 2.0.0 with HIVE-9635
在考虑顶点之前检查输出大小(-1禁用检查)
LLAP指标
hive.llap.queue.metrics.percentiles.intervals
- 默认值:空白
- 添加In:Hive 2.0.0 with ..
以逗号分隔的整数集,表示LLAP守护程序生产者 - 使用者队列上的百分等延迟度量标准所需的翻转间隔(以秒为单位)。
默认情况下,禁用百分位延迟指标。
hive .llap.management.rpc.port
- 默认值:
15004
- 添加于:2.0.0与HIVE-12341
LLAP守护程序管理服务的RPC端口。
LLAP UDF安全性
基于白名单的UDF支持(HIVE-12852)。
hive.llap.allow.permanent.fns
- 默认值:
true
- 添加于:2.1.0与HIVE-13307
LLAP决策程序是否应允许永久UDF。
hive.llap.daemon.download.permanent.fns
- 默认值:
false
- 添加于:Hive 2.1.0与HIVE-12853,HIVE-13054和HIVE-13307
LLAP守护程序是否应该为永久UDF本地化资源。
LLAP安全
hive.llap.daemon.keytab.file
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12341
包含LLAP守护程序的服务主体的Kerberos Keytab文件的路径。
hive.llap.zk.sm.principal
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12341
用于与ZooKeeper for ZooKeeper SecretManager对话的主体名称。
hive.llap.zk.sm.keytab.file
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12341
Kerberos Keytab文件的路径,包含用于与ZooKeeper for ZooKeeper SecretManager对话的主体。
hive.llap.zk.sm.connectionString
- 默认值:(空)
- 添加In:Hive 2.0.0 with HIVE-12341
ZooKeeper SecretManager的ZooKeeper连接字符串。
hive.llap.daemon.acl
- 默认值:
*
- 添加In:Hive 2.0.0与HIVE-12341和HIVE-12813
LLAP守护程序的ACL。
hive.llap.management.acl
- 默认值:
*
- 添加In:Hive 2.0.0与HIVE-12341和HIVE-12813
LLAP守护程序管理的ACL。
hive.llap.daemon.delegation.token.lifetime
- 默认值:
14d
- 添加In:Hive 2.0.0 with HIVE-12341
LLAP委派令牌生存期,如果指定没有单位,则以秒为单位。
交易和压缩机
Hive 0.13.0(HIVE-5317及其子任务)中添加了具有行级ACID功能的Hive事务。有关详细信息,请参阅ACID和Hive中的事务。
要打开Hive事务,请从默认值更改这些参数的值,如下所述:
这些参数还必须具有非默认值才能打开Hive事务:
交易
hive.txn.manager
- 默认值:
org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager
- Hive交易价值:
org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
- 添加In:Hive 0.13.0 with HIVE-5843
将此设置为org.apache.hadoop.hive.ql.lockmgr.DbTxnManager,作为打开Hive事务的一部分。 默认的DummyTxnManager复制pre-Hive-0.13行为并且不提供任何事务。
打开Hive事务还需要对hive.compactor.initiator.on,hive.compactor.worker.threads,hive.support.concurrency,hive.enforce.bucketing (仅限Hive 0.x和1.x)以及hive进行适当的设置。.exec.dynamic.partition.mode。
hive.txn.strict.locking.mode
- 默认值:
true
- 添加In:Hive 2.2.0 with HIVE-15774
在严格模式下,非ACID资源使用标准的R / W锁定语义,例如INSERT将获得独占锁定。在非严格模式下,对于非ACID资源,INSERT将仅获取共享锁,这允许对同一分区进行两次并发写入,但仍然允许锁管理器在写入表时阻止DROP TABLE等。只有苹果时 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager.
hive.txn.timeout
- 默认值:
300
- 添加In:Hive 0.13.0 with HIVE-5843
如果客户端未在几秒钟内发送心跳,则声明事务被中止的时间。
hive.txn.heartbeat.threadpool.size
- 默认值:5
- 添加In:Hive 1.3.0和2.0.0与 HIVE-12366
用于心跳的线程数。对于Hive CLI,一个线程就足够了,但是HiveServer2需要一些线程。
hive.timedout.txn.reaper.start
- 默认值:
100s
- 添加于:Hive 1.3.0 with HIVE-11317
在Metastore开始之后运行第一个收割机的时间延迟(中止超时交易的过程)。
hive.timedout.txn.reaper.interval
- 默认值:
180s
- 添加于:Hive 1.3.0 with HIVE-11317
描述收割机(中止超时交易的过程)运行频率的时间间隔。
hive.writeset.reaper.interval
- 默认值:
60s
- 添加In:Hive 1.3.0和2.1.0 with HIVE-13395
WriteSet收割机的运行频率。
hive.txn.max.open.batch
- 默认值:
1000
- 添加In:Hive 0.13.0 with HIVE-5843
在一次调用open_txns()时可以获取的最大事务数。
这可以控制流媒体代理(如Flume或Storm)同时打开的事务数量。然后,流代理将该条目数写入单个文件(每个Flume代理或Storm bolt)。因此,增加此值会减少由流代理创建的增量文件的数量。但它也增加了Hive在任何给定时间必须跟踪的开放事务的数量,这可能会对读取性能产生负面影响。
hive.max.open.txns
- 默认值:
100000
- 添加In:Hive 1.3.0和2.1.0 with HIVE-13249
最大打开交易数。如果当前未结交易达到此限制,将拒绝未来的未结交易请求,直到该数量低于限制。
hive.count.open.txns.interval
- 默认值:
1s
- 添加In:Hive 1.3.0和2.1.0 with HIVE-13249
检查以计算未结交易的时间(秒)。
hive.txn.retryable.sqlex.regex
- 默认值:(空)
- 添加In:Hive 1.3.0和2.1.0与 HIVE-12637
逗号分隔的SQL状态,错误代码和可重试SQLExceptions的错误消息的正则表达式模式列表,适用于Hive Metastore数据库。
例如:无法序列化。*,40001 $,^死锁,。* ORA-08176。*
正则表达式将匹配的字符串具有以下形式,其中ex是SQLException:
ex.getMessage()+“(SQLState =”+ ex.getSQLState()+“,ErrorCode =”+ ex.getErrorCode()+“)”
压路机
hive.compactor.initiator.on
- 默认值:
false
- Hive事务值:(仅
true
适用于Thrift Metastore服务的一个实例) - 添加In:Hive 0.13.0 with HIVE-5843
是否在此Metastore实例上运行启动器和清除线程。在Thrift Metastore服务的一个实例上将此设置为true,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅hive.txn.manager。
至关重要的是,在一个Metastore服务实例(尚未强制执行)上启用此功能。
hive.compactor.worker.threads
- 默认值:
0
- Hive Transactions Value:大于
0
Thrift Metastore服务的至少一个实例 - 添加In:Hive 0.13.0 with HIVE-5843
在此Metastore实例上运行多少个压缩工作线程。在Thrift Metastore服务的一个或多个实例上将此值设置为正数,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅 hive.txn.manager。
工作线程产生MapReduce作业以进行压缩。他们自己不做压缩。增加工作线程数将减少确定需要压缩后压缩表或分区所需的时间。随着更多MapReduce作业将在后台运行,它还将增加Hadoop集群的后台负载。
hive.compactor.worker.timeout
- 默认值:
86400
- 添加In:Hive 0.13.0 with HIVE-5843
将声明压缩作业失败并且压缩重新排队的时间(以秒为单位)。
hive.compactor.check.interval
- 默认值:
300
- 添加In:Hive 0.13.0 with HIVE-5843
检查之间的时间(以秒为单位),以查看是否需要压缩任何表或分区。这应该保持很高,因为每次检查压缩都需要对NameNode进行多次调用。
减小此值将减少为需要压缩的表或分区启动压缩所需的时间。但是,检查是否需要压缩需要对自上次主要压缩以来已对其执行了事务的每个表或分区的NameNode进行多次调用。因此,降低此值将增加NameNode的负载。
hive.compactor.cleaner.run.interval
- 默认值:
5000
- 添加于:Hive 0.14与 HIVE-8258
清理线程运行之间的时间(以毫秒为单位)。增加此值将延长清理旧的,不再使用的数据版本以及降低Metastore服务器上的负载所需的时间。减小此值将缩短清理旧的,不再使用的数据版本并增加Metastore服务器上的负载所需的时间。
hive.compactor.delta.num.threshold
- 默认值:
10
- 添加In:Hive 0.13.0 with HIVE-5843
表或分区中将触发次要压缩的增量目录数。
hive.compactor.delta.pct.threshold
- 默认值:
0.1
- 添加In:Hive 0.13.0 with HIVE-5843
增量文件相对于将触发主要压缩的基数的百分比(小数)大小。(1.0 = 100%,因此默认值为0.1 = 10%。)
hive.compactor.abortedtxn.threshold
- 默认值:
1000
- 添加In:Hive 0.13.0 with HIVE-5843
涉及将触发主要压缩的给定表或分区的中止事务的数量。
压缩历史
hive.compactor.history.retention.succeeded
- 默认值:
3
- 添加In:Hive 1.3.0和2.0.0与HIVE-12353
要保留在历史记录中的成功压缩条目数(每个分区)。
hive.compactor.history.retention.failed
- 默认值:
3
- 添加In:Hive 1.3.0和2.0.0与HIVE-12353
要保留在历史记录中的失败压缩条目数(每个分区)。
hive.compactor.history.retention.attempted
- 默认值:
2
- 添加In:Hive 1.3.0和2.0.0与HIVE-12353
在历史记录中保留的尝试压缩条目数(每个分区)。
hive.compactor.history.reaper.interval
- 默认值:
2m
- 添加In:Hive 1.3.0和2.0.0与HIVE-12353
控制清除压缩历史记录的过程运行的频率。
hive.compactor.initiator.failed.compacts.threshold
- 默认值:
2
- 添加In:Hive 1.3.0和2.0.0与HIVE-12353
给定分区的连续失败压缩次数,之后Initiator将停止尝试自动计划压缩。仍然可以使用ALTER TABLE来启动压缩。一旦手动启动的压缩成功,自动启动的压缩将恢复。请注意,这必须小于hive.compactor.history.retention.failed。
索引
使用HIVE-417在Hive 0.7.0 中添加索引,并在具有HIVE-1803的 Hive 0.8.0中添加位图索引。有关更多信息,请参阅索引。
hive.index.compact.file.ignore.hdfs
- 默认值:
false
- 添加于:Hive 0.7.0 with HIVE-1889
当 true
运行时将忽略存储在索引文件中的HDFS位置。如果移动了数据或更改了集群的名称,则索引数据仍应可用。
hive.optimize.index.filter
- 默认值:
false
- 添加In:Hive 0.8.0 with HIVE-1644
是否启用自动使用索引。
hive.optimize.index.filter.compact.minsize
- 默认值:
5368709120
- 添加In:Hive 0.8.0 with HIVE-1644
自动使用紧凑索引的输入的最小大小(以字节为单位)。
hive.optimize.index.filter.compact.maxsize
- 默认值:
-1
- 添加In:Hive 0.8.0 with HIVE-1644
自动使用紧凑索引的输入的最大大小(以字节为单位)。负数相当于无穷大。
hive.index.compact.query.max.size
- 默认值:
10737418240
- 添加于:Hive 0.8.0与HIVE-2096
使用紧凑索引的查询可以读取的最大字节数。负值相当于无穷大。
hive.index.compact.query.max.entries
- 默认值:
10000000
- 添加于:Hive 0.8.0与 HIVE-2096
在使用紧凑索引的查询期间要读取的最大索引条目数。负值相当于无穷大。
hive.exec.concatenate.check.index
- 默认值:
true
- 添加于:Hive 0.8.0 with HIVE-2125
如果设置为true,则在对其上具有索引的表/分区执行ALTER TABLE tbl_name [partSpec] CONCATENATE时,Hive将抛出错误。用户想要将其设置为true的原因是因为它可以帮助用户避免处理所有索引丢弃,重新创建和重建工作。这对具有数千个分区的表非常有用。
hive.optimize.index.autoupdate
- 默认值:
false
- 添加于:Hive 0.8.0 with HIVE-2354
是否在过期时自动重建索引。
注意:重建索引可能是一项耗时且计算量很大的操作; 在许多情况下,最好手动重建索引。
hive.optimize.index.groupby
- 默认值:
false
- 添加于:Hive 0.8.1与 HIVE-1694
hive.index.compact.binary.search
- 默认值:
true
- 添加于:Hive 0.8.1与 HIVE-2535
是否使用二进制搜索来查找索引表中与过滤器匹配的条目(如果可能)。
统计
见在蜂巢统计有关如何收集和使用蜂巢表,分区和列的统计信息。
hive.stats.dbclass
- 默认值:(
jdbc:derby
Hive 0.7至0.12)或fs
(Hive 0.13及更高版本) - 添加于:Hive 0.7与HIVE-1361
- 新值:
counter
和custom
0.13加入HIVE-4632 ,并fs
在0.13添加了HIVE-6500
Hive 0.7到0.12:存储临时Hive统计信息的默认数据库。选项是jdbc:derby
, jdbc:mysql
和hbase
StatsSetupConst.java中定义的。
Hive 0.13及更高版本:存储临时Hive统计信息的存储。在基于文件系统的统计信息收集(“ fs
”)中,每个任务都会将它收集的统计信息写入文件系统上的文件中,该文件将在作业完成后进行聚合。支持的值是fs
(文件系统), (其中,可以是,等), , ,和 如在StatsSetupConst.java定义。jdbc:<database>
<database>
derby
mysql
hbase
counter
custom
hive.stats.autogather
- 默认值:
true
- 添加于:Hive 0.7与 HIVE-1361
此标志允许在Hive DML操作期间自动收集和更新统计信息。
不收集LOAD DATA
报表的统计数据。
hive.stats.column.autogather
扩展统计信息自动收集以收集列级统计信息。
hive.stats.jdbcdriver
- 默认值:
org.apache.derby.jdbc.EmbeddedDriver
- 添加于:Hive 0.7与 HIVE-1361
存储临时Hive统计信息的数据库的JDBC驱动程序。
hive.stats.dbconnectionstring
- 默认值:
jdbc:derby:;databaseName=TempStatsStore;create=true
- 添加于:Hive 0.7与 HIVE-1361
存储临时Hive统计信息的数据库的缺省连接字符串。
hive.stats.default.publisher
- 默认值:(空)
- 添加于:Hive 0.7与 HIVE-1923
默认情况下使用的Java类(实现StatsPublisher接口)如果hive.stats.dbclass 不是JDBC或HBase(Hive 0.12.0及更早版本),或者hive.stats.dbclass是自定义类型(Hive 0.13.0)后来: HIVE-4632)。
hive.stats.default.aggregator
- 默认值:(空)
- 添加于:Hive 0.7与HIVE-1923
默认情况下使用的Java类(实现StatsAggregator接口)如果hive.stats.dbclass 不是JDBC或HBase(Hive 0.12.0及更早版本),或者hive.stats.dbclass 是自定义类型(Hive 0.13.0)后来: HIVE-4632)。
hive.stats.jdbc.timeout
- 默认值:
30
- 添加于:Hive 0.7 with HIVE-1961
JDBC连接和语句使用的超时值(秒数)。
hive.stats.atomic
- 默认值:
false
- 添加于:Hive 0.7 with HIVE-1961
如果将此设置为true,则仅当所有类型的统计信息(行数,文件数,字节数等)可用时,才会更新Metastore统计信息。否则,尽可能以最佳方式更新Metastore统计数据。
hive.stats.retries.max
- 默认值:
0
- 添加于:Hive 0.8 with HIVE-2127
统计信息发布者/聚合器获得更新中间数据库的异常时的最大重试次数。默认是没有尝试失败。
hive.stats.retries.wait
- 默认值:
3000
- 添加于:Hive 0.8 with HIVE-2127
下次重试之前的基本等待窗口(以毫秒为单位)。实际等待时间由baseWindow * failures + baseWindow *(失败+ 1)*(随机数在0.0,1.0之间)计算。
hive.stats.collect.rawdatasize
- 默认值:
true
- 添加于:Hive 0.8 with HIVE-2185
如果为true,则在分析表时收集原始数据大小。
hive.client.stats.publishers
以逗号分隔的统计信息发布者列表,在每个作业的计数器上调用。客户端统计信息发布者被指定为实现org.apache.hadoop.hive.ql.stats.ClientStatsPublisher接口的Java类的名称。
hive.client.stats.counters
hive.client.stats.publishers应该感兴趣的计数器子集(当人们想限制他们的发布时)。应使用非显示名称。
hive.stats.reliable
查询是否会失败,因为无法完全准确地收集统计信息。如果将此设置为true,则从/向分区或未分区表读取/写入可能会失败,因为无法准确计算统计信息。如果设置为false,则操作将成功。
在 Hive 0.13.0及更高版本中,如果hive.stats.reliable为false且无法正确计算统计信息,则操作仍可成功并更新统计信息,但会将分区属性“areStatsAccurate”设置为false。如果应用程序需要准确的统计信息,则可以在后台获取它们。
hive.stats.ndv.error
- 默认值:
20.0
- 添加In:带有HIVE-1362的 Hive 0.10 (补丁10)
NDV估计允许的标准误差,以百分比表示。这提供了准确性和计算成本之间的折衷。较低的错误值表示更高的准确性和更高的计算成本。(NDV表示不同值的数量。)
hive.stats.collect.tablekeys
- 默认值:
false
- 添加In:带有HIVE-3501的 Hive 0.10
是否在QueryPlan中派生和维护表上的连接和按键分组。这有助于确定如何访问表并确定是否应该对表进行分段。
hive.stats.collect.scancols
- 默认值:
false
- 添加于:Hive 0.11与 HIVE-3940
是否在QueryPlan中跟踪列访问。这对于确定如何访问表以及确定是否存在可以修剪的浪费列非常有用。
hive.stats.key.prefix.max.length
- 默认值:(
200
Hive 0.11和0.12)或
(Hive 0.13及更高版本)150
- 添加In:带有HIVE-3750的 Hive 0.11
确定当用于中间统计信息收集的密钥的前缀超过特定长度时,是否使用密钥的散列。如果值<0则从未使用哈希值,则如果值> = 0,则仅当键前缀的长度超过该值时才使用哈希。密钥前缀定义为密钥中任务ID之前的所有内容。对于计数器类型统计信息,它的最大值为mapreduce.job.counters.group.name.max,默认为128。
hive.stats.key.prefix.reserve.length
- 默认值:
24
- 添加于:Hive 0.13与 HIVE-6229
统计密钥后缀的保留长度。目前仅对计数器类型统计有意义,该统计应保持完整统计密钥的长度小于hive.stats.key.prefix.max.length配置的最大长度。对于计数器类型统计,它应该大于LB规范的长度(如果存在)。
hive.stats.max.variable.length
- 默认值:
100
- 添加于:Hive 0.13与 HIVE-5369
为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。在没有列统计信息的情况下,对于可变长度列(如字符串,字节等),将使用此值。对于固定长度列,使用相应的Java等效大小(float - 4个字节,double - 8个字节等)。
hive.analyze.stmt.collect.partlevel.stats
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7609
在0.14之前,在分区表上,分析用于在未指定分区时收集表级统计信息的语句。该行为已从0.14开始改为收集所有分区的分区级别统计信息。如果需要收集聚合表级别统计信息的旧行为,请将此配置的值更改为false。这仅影响列统计信息。基本统计信息不受此配置的影响。
hive.stats.list.num.entries
- 默认值:
10
- 添加于:Hive 0.13与 HIVE-5369
为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。在没有列统计信息和列表等可变长度复杂列的情况下,可以使用此配置属性指定平均条目数/值。
hive.stats.map.num.entries
- 默认值:
10
- 添加于:Hive 0.13与 HIVE-5369
为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。如果没有列统计信息,并且对于像map这样的可变长度复杂列,可以使用此配置属性指定平均条目数/值。
hive.stats.map.parallelism
Hive / Tez优化器估计流经每个运营商的数据大小。对于GROUPBY运算符,要准确计算数据大小,需要知道映射侧并行性。默认情况下,此值设置为1,因为优化器在编译时不知道映射器的数量。此Hive配置属性可用于指定GROUPBY运算符的数据大小计算的映射器数。(此版本的配置属性已在版本0.14.0中删除。)
hive.stats.fetch.partition.stats
- 默认值:
true
- 添加In:Hive 0.13 with HIVE-6298
- 删除:Hive 3.0.0 with HIVE-17932
具有统计信息的运算符树的注释需要分区级基本统计信息,例如行数,数据大小和文件大小。分区统计信息是从Metastore中获取的。当分区数量很高时,获取每个所需分区的分区统计信息可能很昂贵。此标志可用于禁用从Metastore获取分区统计信息。禁用此标志后,Hive将调用文件系统以获取文件大小,并将估计行模式中的行数。
hive.stats.fetch.column.stats
- 默认值:
false
- 添加In:Hive 0.13 with HIVE-5898
具有统计信息的运算符树的注释需要列统计信息。从Metastore获取列统计信息。当列数很高时,获取每个所需列的列统计信息可能很昂贵。此标志可用于禁用从Metastore中获取列统计信息。
hive.stats.join.factor
- 默认值:
(float) 1.1
- 添加In:Hive 0.13 with HIVE-5921
Hive / Tez优化器估计流经每个运营商的数据大小。JOIN运算符使用列统计信息来估计流出的行数,从而估计数据大小。在没有列统计信息的情况下,此因子确定流出JOIN运算符的行数。
hive.stats.deserialization.factor
- 默认值:
- Hive 0.13到2.xx:
(float) 1.0
- Hive 3.0.0及更高版本:
(float) 10.0
- Hive 0.13到2.xx:
- 添加In:Hive 0.13 with HIVE-5921
- 在Hive 3.0中,默认值从1.0更改为10.0
Hive / Tez优化器估计流经每个运营商的数据大小。在缺少行数和数据大小等基本统计信息的情况下,文件大小用于估计行数和数据大小。由于表/分区中的文件被序列化(并且可选地压缩),因此不能可靠地确定行数和数据大小的估计。此因子与文件大小相乘以考虑序列化和压缩。
hive.stats.avg.row.size
- 默认值:
10000
- 添加In:Hive 0.13 with HIVE-5921
在没有表/分区统计信息的情况下,将使用平均行大小来估计行数/数据大小。
hive.compute.query.using.stats
- 默认值:
false
- 添加In:Hive 0.13.0 with HIVE-5483
当设置为true时,Hive将纯粹使用存储在Metastore中的统计信息来回答一些查询,如min,max和count(1)。对于基本统计信息收集,请将配置属性hive.stats.autogather设置为true。要获得更高级的统计信息收集,请运行ANALYZE TABLE查询。
hive.stats.gather.num.threads
- 默认值:
10
- 添加In:Hive 0.13.0 with HIVE-6578
partialscan / noscan analyze命令用于分区表的线程数。这仅适用于实现StatsProvidingRecordReader接口(如ORC)的文件格式。
hive.stats.fetch.bitvector
- 默认值:
false
- 添加In:Hive 3.0.0 with HIVE-16997
Hive是否在计算不同值的数量(ndv)时获取bitvector。如果要在没有位向量的情况下使用旧架构,请将其设置为false。
运行时过滤
hive.tez.dynamic.semijoin.reduction
- 默认值:true
- 添加In:Hive 2.2 with HIVE-15269
hive.tez.min.bloom.filter.entries
- 默认值:1000000
- 添加于:Hive 2.3 with HIVE-16260
hive.tez.max.bloom.filter.entries
- 默认值:100000000
- 添加In:Hive 2.2 with HIVE-15269
hive.tez.bloom.filter.factor
- 默认值:2.0
- 添加于:Hive 2.3 with HIVE-16260
hive.tez.bigtable.minsize.semijoin.reduction
- 默认值:1000000
- 添加于:Hive 2.3 with HIVE-16260
身份验证和授权
有关授权模式的概述,请参阅Hive授权。
限制/隐藏/内部列表和白名单
hive.conf.restricted.list
- 默认值:
- Hive 0.11.0 :(为空,但隐含地包含此列表)
- Hive 0.13.0:
hive.security.authenticator.manager, hive.security.authorization.manager
(HIVE-5953) - Hive 0.14.0:
hive.security.authenticator.manager, hive.security.authorization.manager, hive.users.in.admin.role
(HIVE-6437) - Hive 2.1.0:
hive.security.authenticator.manager,
hive.security.authorization.manager,
hive.users.in.admin.role,
hive.server2.xsrf.filter.enabled
(HIVE-13853) - Hive 2.2.0:
hive.security.authenticator.manager,
hive.security.authorization.manager,
hive.security.metastore.authorization.manager,
hive.security.metastore.authenticator.manager,
hive.users.in.admin.role,
hive.server2.xsrf.filter.enabled,
hive.security.authorization.enabled
(HIVE-14099),hive.server2.authentication.ldap.baseDN
(HIVE-15713),hive.server2.authentication.ldap.url
(HIVE-15713),hive.server2.authentication.ldap.Domain
(HIVE-15713),hive.server2.authentication.ldap.groupDNPattern
(HIVE-15713),hive.server2.authentication.ldap.groupFilter
(HIVE-15713),hive.server2.authentication.ldap.userDNPattern
(HIVE-15713),hive.server2.authentication.ldap.userFilter
(HIVE- 15713),hive.server2.authentication.ldap.groupMembershipKey
(HIVE-15713),hive.server2.authentication.ldap.userMembershipKey
(HIVE-15713),hive.server2.authentication.ldap.groupClassKey
(HIVE-15713),hive.server2.authentication.ldap.customLDAPQuery
(HIVE-15713) - Hive 3.0.0:以上所有,加上:
hive.spark.client.connect.timeout
(HIVE-16876),hive.spark.client.server.connect.timeout
(HIVE-16876),hive.spark.client.channel.log.level
(HIVE-16876),hive.spark.client.rpc.max.size
(HIVE-16876),hive.spark.client.rpc.threads
(HIVE-16876),hive.spark.client.secret.bits
(HIVE-16876),hive.spark.client.rpc.server.address
(HIVE-16876),hive.spark.client.rpc.server.port
(HIVE-16876),hikari.*
(HIVE-17318),dbcp.*
(HIVE-17319),hadoop.bin.path(HIVE-18248),yarn.bin.path(HIVE-18248)
- 添加In:Hive 0.11.0与 HIVE-2935
以逗号分隔的配置属性列表,这些属性在运行时是不可变的。例如,如果hive.security.authorization.enabled设置为true,则应将其包含在此列表中,以防止客户端在运行时将其更改为false。
hive.conf.hidden.list
- 默认值:
Hive 1.2.2: j
avax.jdo.option.ConnectionPassword,hive.server2.keystore.password (
HIVE-9013)-
Hive 2.3.0:fs.s3.awsAccessKeyId,fs.s3.awsSecretKccessIey,fs.s3n.awsAccessKeyId,fs.s3n.awsSecretAccessKey,fs.s3a.access.key,fs.s3a.secret.key,fs.s3a.proxy .password(HIVE-14588)
Hive 3.0.0: dfs.adls.oauth2.credential,fs.adl.oauth2.credential
HIVE-18228)(
逗号分隔的配置选项列表,普通用户不应读取,例如密码。
hive.conf.internal.variable.list
- 默认值:
hive.added.files.path,hive.added.jars.path,hive.added.archives.path
- 添加In:Hive 1.3.0 with HIVE-12346
逗号分隔的配置选项列表,这些选项在内部使用,不应通过set命令设置。
hive.security.command.whitelist
- 默认值:
set,reset,dfs,add,delete,compile[,list,reload]
- 添加In:Hive 0.13.0与 HIVE-5400 和HIVE-5252
- 更改了Hive 0.14.0以包含“列表”和“重新加载”与 HIVE-7592 (“列表”)和HIVE-7553(“重新加载”)
逗号分隔的用户有权执行的非SQL Hive命令列表。这可用于限制授权命令集。支持的命令列表是Hive 0.13.0中的“set,reset,dfs,add,delete,compile”或者从Hive 0.14.0开始的“set,reset,dfs,add,list,delete,reload,compile”,默认情况下所有这些命令都是授权的。要限制任何这些命令,请将hive.security.command.whitelist设置为其中没有命令的值。
基于SQL标准的Hive授权的白名单
有关在基于SQL标准的授权中授权set命令的白名单属性的信息,请参阅 下面的hive.security.authorization.sqlstd.confwhitelist。
Hive Client Security
hive.security.authorization.enabled
- 默认值:
false
- 添加In:Hive 0.7.0
启用或禁用Hive客户端授权。
hive.security.authorization.manager
- 默认值:
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider
- 添加In:Hive 0.7.0
Hive客户端授权管理器类名。用户定义的授权类应该实现接口org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider。
hive.security.authenticator.manager
- 默认值:
org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator
- 添加In:Hive 0.7.0
Hive客户端身份验证器管理器类名称。用户定义的身份验证器应该实现org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider接口。
hive.security.authorization.createtable.user.grants
- 默认值:(空)
- 添加In:Hive 0.7.0
每当创建表时,都会自动授予某些用户权限。像“userX,userY:select; userZ:create”这样的示例将向userX和userY授予select权限,并在创建新表时向userZ授予create privilege。
hive.security.authorization.createtable.group.grants
- 默认值:(空)
- 添加In:Hive 0.7.0
每当创建表时,都会自动授予某些组的权限。像“groupX,groupY:select; groupZ:create”这样的示例将为groupX和groupY授予select权限,并在创建新表时为groupZ授予create privilege。
hive.security.authorization.createtable.role.grants
- 默认值:(空)
- 添加In:Hive 0.7.0
每当创建表时,都会自动为某些角色授予权限。像“roleX,roleY:select; roleZ:create”这样的示例将为roleX和roleY授予select权限,并在创建新表时向roleZ授予create privilege。
hive.security.authorization.createtable.owner.grants
- 默认值:(空)
- 添加In:Hive 0.7.0
每当创建表时,都会自动授予所有者权限。像“select,drop”这样的例子会将select和drop特权授予表的所有者。请注意,默认情况下,表的创建者无权访问该表。
Hive Metastore Security
在Hive 0.10.0(HIVE-3705)中添加了Metastore端安全性。有关详细信息,请参阅授权中的概述 和Metastore Server中基于存储的授权的详细信息 。
有关一般Metastore配置属性,请参阅MetaStore。
hive.metastore.pre.event.listeners
- 默认值:(空)
- 添加In:Hive 0.9.0 with HIVE-2853
每当创建,更改或删除数据库,表和分区时,要在Metastore端加载事件前监听器类以运行代码。将此配置属性设置为 org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener
hive-site.xml以打开Hive Metastore端安全性。
hive.security.metastore.authorization.manager
- 默认值:
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider
- 添加In:Hive 0.10.0 with HIVE-3705 ; 使用HIVE-7209在Hive 0.14.0中进行了修订
Hive 0.13及更早版本: 要在Metastore中用于授权的授权管理器类名。用户定义的授权类应该实现接口org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider
。
Hive 0.14及更高版本:要在Metastore中用于授权的授权管理器类(以逗号分隔)的名称。 用户定义的授权类应实现org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider接口。 所有授权管理器类都必须成功授权Metastore API调用才能允许执行命令。
DefaultHiveMetastoreAuthorizationProvider实现标准Hive授予/撤销模型。还提供了基于存储的授权实现,以用作此配置属性的值:
org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider
它使用HDFS权限来提供授权,而不是使用Hive样式的基于授权的授权。
hive.security.metastore.authenticator.manager
- 默认值:
org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
- 添加In:Hive 0.10.0 with HIVE-3705
要在Metastore中用于身份验证的身份验证器管理器类名称。用户定义的验证器类应该实现接口org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider
。
hive.security.metastore.authorization.auth.reads
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-8221
如果是这样,则Metastore授权程序授权对数据库和表执行读取操作。请参阅基于存储的授权。
hive.metastore.token.signature
- 默认值:“”(空字符串)
- 在Hive 0.7.0中添加,添加到Hive 2.1.0中的HiveConf
从当前用户的令牌中选择令牌时要匹配的委托令牌服务名称。
基于SQL标准的授权
版
Hive 0.13.0引入了基于SQL标准授权模型的细粒度授权。有关功能规范和子任务列表,请参阅HIVE-5837。
hive.users.in.admin.role
- 默认值:(空)
- 添加In:Hive 0.13.0 with HIVE-5959
以逗号分隔的用户列表,将在Metastore启动时添加到ADMIN角色。以后仍可以添加更多用户。
hive.security.authorization.sqlstd.confwhitelist
Java正则表达式。使用SQL标准基本授权时,用户可以修改与此正则表达式匹配的配置属性 。
如果未设置此参数,则SQL标准授权程序将添加默认列表。要显示当前版本的默认列表,请使用命令' set hive.security.authorization.sqlstd.confwhitelist
'。
在Hive 0.13.0中,默认的白名单具有这些属性( 对于相同的列表,请参阅 HIVE-6846,每行排列一个属性):
hive.exec.reducers.bytes.per.reducer,hive.exec.reducers.max,hive.map.aggr,hive.map.aggr.hash.percentmemory,hive.map.aggr.hash.force.flush.memory。 threshold,hive.map.aggr.hash.min.reduction,hive.groupby.skewindata,hive.optimize.multigroupby.common.distincts,hive.optimize.index.groupby,hive.optimize.ppd,hive.optimize.ppd。 storage,hive.ppd.recognizetransivity,hive.optimize.groupby,hive.optimize.sort.dynamic.partition,hive.optimize.union.remove,hive.multigroupby.singlereducer,hive.map.groupby.sorted,hive.map。 groupby.sorted.testmode,hive.optimize.skewjoin,hive.optimize.skewjoin.compiletime,hive.mapred.mode,hive.enforce.bucketmapjoin,hive.exec.compress.output,hive.exec.compress.intermediate,hive。 exec.parallel,hive.exec.parallel.thread.number,hive.exec.rowoffset,hive.merge.mapfiles,hive.merge.mapredfiles,hive.merge.tezfiles,hive.ignore.mapjoin.hint,hive.auto.convert.join,hive.auto.convert.join.noconditionaltask,hive.auto.convert.join.noconditionaltask.size,hive.auto.convert.join.use.nonstaged, hive.enforce.bucketing,hive.enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys, hive.mapjoin.lazy.hashtable,hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output。 compression.codec,mapreduce.job.reduce.slowstart.completedmaps,mapreduce.job.queuename。enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys,hive.mapjoin.lazy.hashtable, hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output.compression.codec,mapreduce.job。 reduce.slowstart.completedmaps,mapreduce.job.queuename。enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys,hive.mapjoin.lazy.hashtable, hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output.compression.codec,mapreduce.job。 reduce.slowstart.completedmaps,mapreduce.job.queuename。mapreduce.job.queuename。mapreduce.job.queuename。
版本信息
Hive 0.14.0将新参数添加到默认白名单(请参阅 HIVE-8534)。
Hive 1.1.0删除了一些参数(参见HIVE-9331)。
Hive 1.2.0和1.2.1添加了更多新参数(参见HIVE-10578, HIVE-10678和HIVE-10967)。
Hive 1.3.0,2.1.1和2.2.0增加了更多新参数(参见HIVE-14073)。
Hive 3.0.0修复了1.2.1中添加的参数,将mapred.job.queuename更改为mapred.job.queue.name(请参阅HIVE-17584)。
当它们匹配正则表达式规格的白名单中HiveConf.java之一某些参数将自动添加(例如,hive.log.trace.id在蜂巢2.0.0 - 见HIVE-12419 )。
请注意,在白名单检查后仍会强制执行hive.conf.restricted.list检查。
hive.security.authorization.sqlstd.confwhitelist.append
- 默认值:(空)
- 添加In:带有HIVE-8534的 Hive 0.14.0
除了hive.security.authorization.sqlstd.confwhitelist之外,配置属性的白名单将匹配的第二个Java正则表达式。不要|
在值中包含起始值。
使用此正则表达式而不是更新hive.security.authorization.sqlstd.confwhitelist的原始正则表达式 意味着您可以附加到由SQL标准授权设置的默认值而不是完全替换它。
hive.server2.builtin.udf.whitelist
以逗号分隔的允许执行的内置UDF列表。如果从查询中调用,则未包含在列表中的UDF将返回错误。如果设置为空,则将其视为通配符 - 将允许所有UDF。请注意,HiveServer2在启动时读取此配置,并且在会话中使用“set”命令更改此配置不会更改行为。
hive.server2.builtin.udf.blacklist
以逗号分隔的内置UDF列表,不允许执行。如果从查询中调用,则列表中包含的UDF将返回错误。请注意,HiveServer2在启动时读取此配置,并且在会话中使用“set”命令更改此配置不会更改行为。
hive.security.authorization.task.factory
- 默认值:
org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl
要覆盖默认授权DDL处理,请将hive.security.authorization.task.factory设置为实现org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactory接口的类。
存档
有关Hadoop归档的 Hive支持的一般信息,请参阅归档以减少文件数。
fs.har.impl
- 默认值:
org.apache.hadoop.hive.shims.HiveHarFileSystem
- 添加In:Hive 0.8.1
访问Hadoop Archives的实现。请注意,这不适用于小于0.20的Hadoop版本。
hive.archive.enabled
- 默认值:
false
- 添加In:Hive 0.6.0
是否允许归档操作。
hive.archive.har.parentdir.settable
- 默认值:
false
- 添加In:Hive 0.6.0
- 删除:Hive 0.10.0与HIVE-3338
在新的Hadoop版本中,必须在创建HAR时设置父目录。由于仅使用版本号很难检测到此功能,因此需要在Hive版本0.6.0到0.9.0中手动设置此配置变量。(此版本的配置属性已在版本0.10.0中删除。)
锁定
有关锁定的一般信息,请参阅Hive Concurrency Model。
hive.support.concurrency
- 默认值:
false
- 添加In:Hive 0.7.0 with HIVE-1293
Hive是否支持并发。一个ZooKeeper的实例必须启动并运行了默认配置单元锁管理器,支持读写锁。
设置为 true
支持 INSERT ... VALUES,UPDATE和DELETE 事务(Hive 0.14.0及更高版本)。有关打开Hive事务所需参数的完整列表,请参阅 hive.txn.manager。
hive.lock.manager
- 默认值:
org.apache.hadoop.hive.ql.lockmgr.zookeeper.ZooKeeperHiveLockManager
- 添加In:Hive 0.7.0 with HIVE-1293
hive.support.concurrency设置为时使用的锁管理器true
。
hive.lock.mapred.only.operation
- 默认值:
false
- 添加In:Hive 0.8.0
此配置属性用于控制是否仅锁定需要执行至少一个mapred作业的查询。
hive.lock.query.string.max.length
- 默认值: 1000000
- 添加In:Hive 3.0.0
要存储在锁中的查询字符串的最大长度。默认值为1000000,因为znode的数据限制为1MB
hive.lock.numretries
- 默认值:
100
- 添加In:Hive 0.7.0 with HIVE-1293
您想要尝试获取所有锁的总次数。
hive.unlock.numretries
- 默认值:
10
- 添加In:Hive 0.8.1
您要解锁的总次数。
hive.lock.sleep.between.retries
- 默认值:
60
- 添加In:Hive 0.7.0 with HIVE-1293
各种重试之间的休眠时间(以秒为单位)。
hive.zookeeper.quorum
- 默认值:(空)
- 添加In:Hive 0.7.0 with HIVE-1293
要与之交谈的ZooKeeper服务器列表。只有读/写锁才需要这样做。
hive.zookeeper.client.port
要与之交谈的ZooKeeper服务器端口。只有读/写锁才需要这样做。
hive.zookeeper.session.timeout
ZooKeeper客户端的会话超时(以毫秒为单位)。客户端断开连接,因此,如果超时中未发送心跳,则释放所有锁定。
hive.zookeeper.namespace
- 默认值:
hive_zookeeper_namespace
- 添加In:Hive 0.7.0
创建所有ZooKeeper节点的父节点。
hive.zookeeper.clean.extra.nodes
- 默认值:
false
- 添加In:Hive 0.7.0
在会话结束时清理额外的节点。
hive.lockmgr.zookeeper.default.partition.name
- 默认值:
__HIVE_DEFAULT_ZOOKEEPER_PARTITION__
- 添加In:Hive 0.7.0 with HIVE-1293
ZooKeeperHiveLockManager是配置单元锁定管理器时的默认分区名称 。
度量
可以在HiveServer2 Web UI中查看Hive收集的度量标准。有关更多信息,请参阅Hive Metrics。
hive.metastore.metrics.enabled
- 默认值:
false
- 添加于:Hive 1.3.0和2.0.0与HIVE-10761
在Hive Metastore服务上启用指标。(有关其他Metastore配置属性,请参阅Metastore和Hive Metastore Security部分。)
hive.server2.metrics.enabled
- 默认值:
false
- 添加于:Hive 1.3.0和2.0.0与 HIVE-10761
在HiveServer2上启用指标。(有关其他HiveServer2配置属性,请参阅HiveServer2部分。)
hive.service.metrics.class
- 默认值:
org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics
- 添加于:Hive 1.3.0和2.0.0与 HIVE-10761
Hive metrics子系统实现类。“org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics”是新的实现。要在Hive 1.3和2.0之前恢复旧实现以及其内置的JMX报告功能,请选择“org.apache.hadoop.hive.common.metrics.LegacyMetrics”。
hive.service.metrics.reporter
- 默认值:“
JSON_FILE, JMX
” - 添加于:Hive 1.3.0和2.0.0与 HIVE-10761
- 不推荐使用:Hive 3.0.0 with HIVE-16206
度量标准类org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics的报告者类型,以逗号分隔的值列表JMX,CONSOLE,JSON_FILE。
在Hive 2.1.0中添加了新的报告型HADOOP2和 HIVE-13480。
hive.service.metrics.codahale.reporter.classes
- 默认值:“org.apache.hadoop.hive.common.metrics.metrics2.JsonFileMetricsReporter,org.apache.hadoop.hive.common.metrics.metrics2.JmxMetricsReporter”
- 添加于:Hive 3.0.0 with HIVE-16206
逗号分隔的度量标准类org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics的记者实现类列表。覆盖hive.service.metrics.reporter conf(如果存在)。
hive.service.metrics.file.location
- 默认值:“
/tmp/report.json
” - 添加于:Hive 1.3.0和2.0.0与 HIVE-10761
对于hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和hive.service.metrics.reporter JSON_FILE,这是本地JSON指标文件转储的位置。此文件将在hive.service.metrics.file.frequency的每个时间间隔被覆盖。
hive.service.metrics.file.frequency
- 默认值:5秒
- 添加于:Hive 1.3.0和2.0.0与 HIVE-10761
对于hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和hive.service.metrics.reporter JSON_FILE,这是更新JSON指标文件的频率。
hive.service.metrics.hadoop2.component
- 默认值:“
hive
” - 添加于:Hive 2.1.0 with HIVE-13480
对于 hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和 hive.service.metrics.reporter HADOOP2,这是提供给HADOOP2指标系统的组件名称。理想情况下,MetaStore的“hivemetastore”和HiveServer2的“hiveserver2”。度量标准将在hive.service.metrics.hadoop2.frequency的每个时间间隔更新 。
hive.service.metrics.hadoop2.frequency
- 默认值:30秒
- 添加于:Hive 2.1.0 with HIVE-13480
对于 hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和 hive.service.metrics.reporter HADOOP2,这是更新HADOOP2指标系统的频率。
聚类
hive.cluster.delegation.token.store.class
- 默认值:
org.apache.hadoop.hive.thrift.MemoryTokenStore
- 添加In:Hive 0.9.0
委托令牌存储实现。设置为负载平衡群集的org.apache.hadoop.hive.thrift.ZooKeeperTokenStore。
hive.cluster.delegation.token.store.zookeeper.connectString
- 默认值:
localhost:2181
- 添加In:Hive 0.9.0
ZooKeeper令牌存储连接字符串。
hive.cluster.delegation.token.store.zookeeper.znode
- 默认值:
/hive/cluster/delegation
- 添加In:Hive 0.9.0
令牌存储数据的根路径。
hive.cluster.delegation.token.store.zookeeper.acl
- 默认值:
sasl:hive/host1@EXAMPLE.COM:cdrwa,sasl:hive/host2@EXAMPLE.COM:cdrwa
- 添加In:Hive 0.9.0
令牌存储条目的ACL。列表逗号分隔了群集的所有服务器主体。
地区
在Hive 0.9.0中被HIVE-2612还原
在Hive版本0.9.0之前,本节中曾经记录的配置属性(hive.use.input.primary.region,hive.default.region.name和hive.region.properties)暂时存在于主干中,但它们是在发布之前删除。见HIVE-2612和HIVE-2965。
对由于之前包含在本文档中引起的任何混淆表示道歉。
命令行界面
hive.cli.print.header
- 默认值:
false
- 添加In:Hive 0.7.0
是否在查询输出中打印列的名称。
hive.cli.print.current.db
- 默认值:
false
- 添加In:Hive 0.8.1
是否在Hive提示符中包含当前数据库。
HBase StorageHandler
hive.hbase.wal.enabled
- 默认值:
true
- 添加In:Hive 0.6.0 with HIVE-1383
是否应该强制写入HBase写入预写日志。禁用此功能可提高HBase写入性能,但有可能在发生崩溃时丢失写入。
hive.hbase.generatehfiles
当HBaseStorageHandler生成hfiles而不是对联机表进行操作时为True。
Hive Web Interface(HWI)(从Hive 2.2.0开始删除组件)
hive.hwi.war.file
- 默认值:
lib/hive-hwi-<version>.war
- 添加In:Hive 0.3.0默认
lib/hive_hwi.war
,默认更改为lib/hive-hwi-<version>.war
Hive 0.5(HIVE-978和 HIVE-1183) - 删除:Hive 2.2.0与HIVE-15622
这将设置HWI war文件的路径,相对于${HIVE_HOME
}。(在2.2.0版中删除了此配置属性。)
hive.hwi.listen.host
- 默认值:
0.0.0.0
- 添加In:Hive 0.3.0
- 删除:Hive 2.2.0与 HIVE-15622
这是Hive Web界面将侦听的主机地址。(在2.2.0版中删除了此配置属性。)
hive.hwi.listen.port
- 默认值:
9999
- 添加In:Hive 0.3.0
- 删除:Hive 2.2.0与 HIVE-15622
这是Hive Web界面将侦听的端口。(在2.2.0版中删除了此配置属性。)
复制
hive.repl.rootdir
- 默认值:
/usr/hive/repl/
- 添加于:Hive 2.2.0 with HIVE-15151
这是一个HDFS根目录,Hive的REPL DUMP命令将在该目录下运行,创建转储以复制到其他仓库。
hive.repl.replica.functions.root.dir
副本仓库中的根目录,其中repl子系统将存储来自主仓库的jar。
hive.repl.partitions.dump.parallelism
- 默认值:
100
- 添加于:Hive 3.0.0 with HIVE-16895 ; 默认情况随HIVE-17625而变化(同样在3.0.0)
REPL DUMP期间用于转储分区数据信息的线程数。
hive.repl.approx.max.load.tasks
- 默认值:10000
- 添加于:Hive 3.0.0 with HIVE-16896
提供动态生成下一组任务之前应执行的最大任务数的近似值。该数字是近似值,因为Hive将停在稍高的数字,原因是某些事件可能导致任务增量超过指定的限制。
hive.repl.dump.metadata.only
- 默认值:
false
- 添加于:Hive 3.0.0 with HIVE-18352
指示REPL DUMP命令是仅转储元数据信息(true
)还是数据+元数据(false
)。
hive.repl.dump.include.acid.tables
- 默认值:
false
-
添加于:Hive 3.0.0 with HIVE-18352
指示复制转储是否应包含有关ACID表的信息。它应与hive.repl.dump.metadata.only结合使用 ,以便为ACID表复制元数据,这些表不需要在目标上应用相应的事务语义。支持ACID表复制时,可以将其删除。
hive.repl.add.raw.reserved.namespace
- 默认值:
false
-
添加于:Hive 3.0.0 with HIVE-18341
对于源和目标上具有相同加密密钥的TDE,允许Distcp超级用户从文件系统访问 原始字节,而无需在源上解密,然后在目标上加密。
Blobstore(即亚马逊S3)
从2.2.0版开始,添加了一组配置,以便在处理存储在blobstore系统(如Amazon S3)上的表时实现读/写性能改进。
hive.blobstore.supported.schemes
- 默认值:
s3,s3a,s3n
- 添加In:Hive 2.2.0 with HIVE-14270
Hive用于应用特殊读/写性能改进的受支持blobstore方案列表。
hive.blobstore.optimizations.enabled
- 默认值:
true
- 添加于:Hive 2.2.0 with HIVE-15121
此参数是一个全局变量,在blob存储上运行时可以进行大量优化。如果此变量设置为false,则不会使用
某些优化,例如hive.blobstore.use.blobstore.as.scratchdir。
hive.blobstore.use.blobstore.as.scratchdir
- 默认值:
false
- 添加In:Hive 2.2.0 with HIVE-14270
将此设置为true可以直接在blob存储系统上使用暂存目录(这可能会导致性能下降)。
hive.exec.input.listing.max.threads
- 默认值:(已
0
禁用) - 添加In:Hive 2.2.0 with HIVE-15881
将此值设置为Hive将用于列出文件系统中的文件信息的最大线程数,例如文件大小和每个表的文件数(对于blobstore,建议> 1)。
测试属性
注意:这是开发人员在运行Hive测试时使用的配置属性的不完整列表。对于其他测试属性,请搜索“hive.test”。在 hive-default.xml.template或HiveConf.java中。另请参阅Beeline查询单元测试。
hive.test.mode
- 默认值:
false
- 添加In:Hive 0.4.0
Hive是否在测试模式下运行。如果是,则打开采样并为输出表名添加前缀。
hive.test.mode.prefix
- 默认值:
test_
- 添加In:Hive 0.4.0
如果Hive在测试模式下运行,则以此字符串为输出表作为前缀。
hive.test.mode.samplefreq
- 默认值:
32
- 添加In:Hive 0.4.0
如果Hive在测试模式下运行且表没有被删除,则采样频率。
hive.test.mode.nosamplelist
- 默认值:(空)
- 添加In:Hive 0.4.0
如果Hive在测试模式下运行,请不要对上面以逗号分隔的表列表进行采样。
hive.exec.submit.local.task.via.child
- 默认值:
true
- 添加In:Hive 0.14.0 with HIVE-7271
确定本地任务(通常是mapjoin哈希表生成阶段)是否在单独的JVM(true
推荐)中运行。避免产生新JVM的开销,但可能导致内存不足问题。 一个false
运行时环境是唯一有用的单元测试。有关 详细信息,请参阅HIVE-7271。
HCatalog配置属性
从Hive版本0.11.0开始,HCatalog已安装并配置了Hive。HCatalog服务器与Hive Metastore相同。有关Metastore配置属性,请参阅Hive Metastore Administration。对于0.11.0之前的Hive版本,请参阅HCatalog 0.5.0文档“ 从Tarball安装”中的“Thrift Server Setup”部分,以获取有关设置Hive Metastore配置属性的信息。
提交给HCatalog的作业可以指定影响存储,容错和作业期间其他类型行为的配置属性。有关详细信息,请参阅HCatalog配置属性。
WebHCat配置属性
有关WebHCat配置,请参阅WebHCat手册中的配置变量。