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