Hive配置属性

Hive配置属性

原文路径:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-HiveConfigurationProperties

 

本文档描述了Hive用户配置属性(有时称为参数变量选项),并说明了哪些版本引入了新属性。

规范的配置属性列表在HiveConfJava类中进行管理,因此请参阅该HiveConf.java文件以获取Hive版本中可用的配置属性的完整列表。

有关如何使用这些配置属性的信息,请参阅配置Hive。该文档还描述了在“ 配置变量”部分中设置Hive的管理配置属性。Hive Metastore Administration描述了Metastore的其他配置属性。

版本信息

从Hive 0.14.0(HIVE-7211 )开始,配置名称以“hive”开头。被视为Hive系统属性。使用hive.conf.validation选项为true(默认值)时,任何尝试设置以“hive”开头的配置属性。未注册到Hive系统的将抛出异常。

查询和DDL执行

hive.execution.engine

  • 默认值:(  mr 在Hive 2.0.0中弃用 - 见下文)
  • 添加In:Hive 0.13.0含有HIVE-6103HIVE-6098

选择执行引擎。选项包括:( mrMap Reduce,默认),tezTez执行,仅适用于Hadoop 2),或sparkSpark执行,适用于Hive 1.1.0以后)。

虽然mr 由于历史原因仍然是默认引擎,但它本身就是一个历史引擎,并且在Hive 2系列(HIVE-12300)中被弃用。它可以在没有进一步警告的情

蜂箱TEZ蜂箱星火获取更多信息,并看到TEZ部分火花部的配置属性如下。

hive.execution.mode

  • 选择查询片段是在容器中还是在llap中运行
  • 默认值: container
  • 有效设置
    • 容器:发射容器
    • llap:在执行任务期间利用llap节点
  • 添加In:Hive 2.0 with  HIVE-9460

mapred.reduce.tasks

  • 默认值: -1
  • 添加In:Hive 0.1.0

每个作业的默认减少任务数。通常设置为接近可用主机数的素数。当mapred.job.tracker为“local”时忽略。Hadoop默认将此值设置为1,而Hive使用-1作为其默认值。通过将此属性设置为-1,Hive将自动确定减少器的数量。

hive.exec.reducers.bytes.per.reducer

  • 默认值:1,000,000,000 Hive 0.14.0之前; Hive 0.14.0及更高版本中的 256 MB(256,000,000
  • 添加In:Hive 0.2.0; 使用HIVE-7158  (和  HIVE-7917),默认值更改为0.14.0 

每个减速机的尺寸。Hive 0.14.0及更早版本中的默认值为1 GB,即如果输入大小为10 GB,则将使用10个reducer。在Hive 0.14.0及更高版本中,默认值为256 MB,即如果输入大小为1 GB,则将使用4个reducer。

hive.exec.reducers.max

  • 默认值:999 Hive 0.14.0之前; 1009 在Hive 0.14.0及更高版本中
  • 添加In:Hive 0.2.0; 使用HIVE-7158(和HIVE-7917),默认值更改为0.14.0

将使用的最大减速器数。如果配置属性mapred.reduce.tasks中指定的值为负数,则Hive将在自动确定reducer数量时将其用作reducers的最大数量。

hive.jar.path

  • 默认值:(空)
  • 添加In:Hive 0.2.0或更早版本

在单独的jvm中提交作业时使用的hive_cli.jar的位置。

hive.aux.jars.path

  • 默认值:(空)
  • 添加In:Hive 0.2.0或更早版本

包含用户定义函数(UDF)和SerDes实现的插件jar的位置。

hive.reloadable.aux.jars.path

  • 默认值:(空)
  • 添加In:Hive 0.14.0 with HIVE-7553

插件罐的位置,可以是逗号分隔的文件夹或罐子。可以通过执行Beeline重新加载命令来更新(添加,删除或更新)它们, 而无需重新启动HiveServer2。这些jar可以  像hive.aux.jars.path中的辅助类一样  用于创建UDF或SerDes。

hive.exec.scratchdir

  • 默认值:/tmp/${user.name}在Hive 0.2.0到0.8.0; /tmp/hive-${user.name在Hive 0.8.1到0.14.0; 或者  /tmp/hive 在Hive 0.14.0及更高版本中
  • 添加In:Hive 0.2.0; 使用HIVE-6847HIVE-8143,默认值在0.8.1和0.14.0中更改

Hive作业的划痕空间。Hive使用此目录存储查询的不同map / reduce阶段的计划,以及存储这些阶段的中间输出。

Hive 0.14.0及更高版本:  Hive作业的HDFS根目录目录,使用write all(733)权限创建。 对于每个连接用户,HDFS暂存目录$ { hive.exec.scratchdir },创建/ <用户名>  使用$ { hive.scratch.dir.permission }。

另请参阅  hive.start.cleanup.scratchdir  和hive.scratchdir.lock。在本地模式下运行Hive时,请参阅  hive.exec.local.scratchdir

hive.scratch.dir.permission

  • 默认值: 700
  • 添加In:Hive 0.12.0 with  HIVE-4487

在根暂存目录中创建的特定于用户的临时目录的权限。(参见hive.exec.scratchdir。)

hive.exec.local.scratchdir

  • 默认值:  /tmp/${user.name}
  • 添加In:Hive 0.10.0 with HIVE-1577

当Hive以本地模式运行时,Hive作业的临时空间。另请参阅hive.exec.scratchdir

hive.hadoop.supports.splittable.combineinputformat

是否组合小输入文件以便生成更少的映射器。

hive.map.aggr

  • 默认值:true在Hive 0.3及更高版本中; false在Hive 0.2
  • 添加In:Hive 0.2.0

是否在Hive Group By查询中使用映射端聚合。

hive.groupby.skewindata

  • 默认值: false
  • 添加In:Hive 0.3.0

是否存在数据偏差以通过查询优化组。

hive.groupby.mapaggr.checkinterval

  • 默认值: 100000
  • 添加In:Hive 0.3.0

执行分组键/聚合类大小的行数。

hive.new.job.grouping.set.cardinality

  • 默认值: 30
  • 添加In:Hive 0.11.0 with HIVE-3552

是否应启动新的map-reduce作业以对集合/汇总/多维数据集进行分组。

对于像“选择a,b,c,从T组中计数(1)a,b,c和汇总一样的查询;” 每行创建四行:(a,b,c),(a,b,null),(a,null,null),(null,null,null)。如果T的基数非常高,这可能导致地图缩小边界爆炸,并且地图侧聚合不能很好地完成。

此参数决定Hive是否应添加其他map-reduce作业。如果分组集基数(上例中的4)大于此值,则在假设原始“分组依据”将减小数据大小的情况下添加新的MR作业。

hive.mapred.local.mem

  • 默认值: 0
  • 添加In:Hive 0.3.0

对于本地模式,映射器/缩减器的内存。

hive.map.aggr.hash.force.flush.memory.threshold

  • 默认值: 0.9
  • 添加于:Hive 0.7.0 with  HIVE-1830

映射端组聚合哈希表使用的最大内存。如果内存使用率高于此数字,则强制刷新数据。

hive.map.aggr.hash.percentmemory

  • 默认值: 0.5
  • 添加In:Hive 0.2.0

映射端组聚合哈希表使用的总内存的一部分。

hive.map.aggr.hash.min.reduction

  • 默认值: 0.5
  • 添加In:Hive 0.4.0

如果哈希表大小和输入行之间的比率大于此数字,则将关闭哈希聚合。设置为1以确保永远不会关闭散列聚合。

hive.optimize.groupby

  • 默认值: true
  • 添加In:Hive 0.5.0

是否从分区分区/表中启用分段组。

hive.optimize.countdistinct

  • 默认值: true
  • 添加In:Hive 3.0.0 with HIVE-16654

是否将重复计数分为2个阶段,即第一阶段使用带有count distinct键的多个reducer,第二阶段使用没有key的单个reducer。

hive.optimize.remove.sq_count_check

  • 默认值: false
  • 添加In:Hive 3.0.0 with  HIVE-16793

是否使用sq_count_check UDF为具有常量分组键的标量子查询删除额外连接。 

hive.multigroupby.singlemr

是否通过查询优化多组以生成单个M / R作业计划。如果按查询的多组具有共同的按键分组,则将对其进行优化以生成单个M / R作业。(在0.9.0版中删除了此配置属性。)

hive.multigroupby.singlereducer

  • 默认值: true
  • 添加In:Hive 0.9.0 with  HIVE-2621

是否通过查询优化多组以生成单个M / R作业计划。如果按查询的多组具有共同的按键分组,则将对其进行优化以生成单个M / R作业。

hive.optimize.cp

  • 默认值: true
  • 添加In:Hive 0.4.0 with HIVE-626
  • 删除:Hive 0.13.0与  HIVE-4113

是否启用列修剪器。(此版本的配置属性已在版本0.13.0中删除。)

hive.optimize.index.filter

  • 默认值: false
  • 添加In:Hive 0.8.0 with  HIVE-1644

是否启用自动使用索引。

注意:有关与Hive索引相关的更多配置属性,请参阅索引

hive.optimize.ppd

  • 默认值: true
  • 添加In:Hive 0.4.0 with HIVE-279,默认情况下在Hive 0.4.0中使用HIVE-626更改为true

是否启用谓词下推(PPD)。 

注意:打开  hive.optimize.index.filter以使用PPD的文件格式特定索引。

hive.optimize.ppd.storage

  • 默认值: true
  • 添加In:Hive 0.7.0

是否将谓词推送到存储处理程序。hive.optimize.ppd为false时忽略。

蜂巢。ppd.remove.duplicatefilters

  • 默认值: true
  • 添加In:Hive 0.8.0

在查询优化期间,可以在运算符树中下推过滤器。如果此配置为true,则仅按下过滤器保留在运算符树中,并删除原始过滤器。如果此配置为false,则原始过滤器也会保留在原始位置的运算符树中。

hive.ppd.recognizetransivity

  • 默认值: true
  • 添加In:Hive 0.8.1

是否在equijoin条件下传递复制谓词过滤器。

hive.join.emit.interval

  • 默认值: 1000
  • 添加In:Hive 0.2.0


发出连接结果之前,最右边的连接操作数Hive应该缓冲多少行。

hive.join.cache.size

  • 默认值: 25000
  • 添加In:Hive 0.5.0

连接表中的行数(流表除外)
应该缓存在内存中。

hive.mapjoin.bucket.cache.size

映射连接表中每个键中的值应该缓存在内存中。

hive.mapjoin.followby.map.aggr.hash.percentmemory

  • 默认值: 0.3
  • 添加于:Hive 0.7.0 with  HIVE-1830

映射端组聚合哈希表使用的总内存部分,当此组依次为map join时。

hive.smalltable.filesize 或  hive.mapjoin.smalltable.filesize

  • 默认值: 25000000
  • 添加In:Hive 0.7.0 with HIVE-1642hive.smalltable.filesize(由Hive 0.8.1中的hive.mapjoin.smalltable.filesize取代)
  • 添加In:Hive 0.8.1 with HIVE-2499hive.mapjoin.smalltable.filesize

小表的输入文件大小的阈值(以字节为单位); 如果文件大小小于此阈值,它将尝试将公共连接转换为地图连接。

hive.mapjoin.localtask.max.memory.usage

此数字表示本地任务可以将键/值保存到内存中哈希表中的内存量。如果本地任务的内存使用量超过此数量,则将中止本地任务。这意味着小表的数据太大而无法保存在内存中。

hive.mapjoin.followby.gby.localtask.max.memory.usage

  • 默认值: 0.55
  • 添加于:Hive 0.7.0 with HIVE-1830

此数字表示当此映射连接后跟一个group by时,本地任务可以将键/值保存到内存中哈希表中的内存量  。如果本地任务的内存使用量超过此数量,  则本地任务将自行中止。这意味着小表的数据太大而无法保存在内存中。

hive.mapjoin.check.memory.rows

该数字表示在处理了多少行后需要检查内存使用情况。

hive.ignore.mapjoin.hint

  • 默认值: true
  • 添加In:Hive 0.11.0与  HIVE-4042

Hive是否忽略mapjoin提示。

hive.smbjoin.cache.rows

应该在每个sort-merge-bucket连接表的内存中缓存具有相同键值的行数。

hive.mapjoin.optimized.keys

MapJoin哈希表是否应使用优化(大小方式)键,允许表占用更少的内存。根据密钥,整个表的内存节省可以是5-15%左右。

hive.mapjoin.optimized.hashtable

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-6430 

Hive是否应该为MapJoin使用内存优化的哈希表。仅适用于Tez  和Spark,因为内存优化的哈希表无法序列化。(从Hive 1.3.0开始支持Spark,HIVE-11180。)

hive.mapjoin.optimized.hashtable.wbsize

  • 默认值: 10485760 (10 * 1024 * 1024)
  • 添加In:Hive 0.14.0 with  HIVE-6430 

优化的哈希表(请参阅hive.mapjoin.optimized.hashtable)使用一系列缓冲区来存储数据。这是一个缓冲区大小。如果Hashtable较大,则Hashtable可能稍快一些,但对于小连接,将分配不必要的内存,然后进行修剪。

hive.mapjoin.lazy.hashtable

MapJoin哈希表是否应按需反序列化值。根据连接实际触摸的表中的值的数量,它可以通过不为不需要的行创建对象来节省大量内存。如果需要所有行,显然没有收益。

hive.hashtable.initialCapacity

  • 默认值: 100000
  • 添加In:Hive 0.7.0 with HIVE-1642

如果缺少统计信息,或者hive.hashtable.key.count.adjustment设置为0 ,则为mapjoin哈希表的初始容量。

hive.hashtable.key.count.adjustment

  • 默认值: 1.0
  • 添加In:Hive 0.14.0与HIVE-7616

调整从表和列统计信息派生的mapjoin哈希表大小;  密钥数的估计值除以该值。如果该值为0,统计不使用  和hive.hashtable.initialCapacity来代替。

hive.hashtable.loadfactor

  • 默认值: 0.75
  • 添加In:Hive 0.7.0 with  HIVE-1642

在Mapjoin的过程中,键/值将保存在哈希表中。此值表示内存中哈希表的加载因子。

hive.debug.localtask

  • 默认值: false
  • 添加In:Hive 0.7.0 with  HIVE-1642

hive.outerjoin.supports.filters

hive.optimize.skewjoin

  • 默认值: false
  • 添加In:Hive 0.6.0

是否启用倾斜连接优化。(另见hive.optimize.skewjoin.compiletime。)

hive.skewjoin.key

  • 默认值: 100000
  • 添加In:Hive 0.6.0

确定我们是否在连接中获得了一个倾斜键。如果我们在join运算符中看到的键数超过指定的行数,我们认为该键是一个倾斜连接键。

hive.skewjoin.mapjoin.map.tasks

  • 默认值: 10000
  • 添加In:Hive 0.6.0

确定倾斜连接的后续地图连接作业中使用的地图任务的数量。它应该与hive.skewjoin.mapjoin.min.split一起使用来执行细粒度控制。

hive.skewjoin.mapjoin.min.split

  • 默认值: 33554432
  • 添加In:Hive 0.6.0

通过指定最小拆分大小,确定倾斜连接的后续映射连接作业中最多使用的映射任务的数量。它应与hive.skewjoin.mapjoin.map.tasks一起使用以执行细粒度控制。

hive.optimize.skewjoin.compiletime

  • 默认值: false
  • 添加In:Hive 0.10.0

是否为连接中的表的倾斜键创建单独的计划。这基于存储在元数据中的倾斜键。在编译时,计划被分成不同的连接:一个用于倾斜的键,另一个用于其余的键。然后,为上面生成的两个连接执行联合。因此,除非两个连接表中都存在相同的倾斜键,否则倾斜键的连接将作为地图侧连接执行。

此参数与hive.optimize.skewjoin之间的主要区别在于此参数使用存储在Metastore中的偏斜信息在编译时自行优化计划。如果元数据中没有偏斜信息,则此参数不起任何作用。
无论hive.optimize.skewjoin.compiletimehive.optimize.skewjoin应设置为true。(理想情况下,hive.optimize.skewjoin应重命名为hive.optimize.skewjoin.runtime,但为了向后兼容性尚未完成。)

如果倾斜信息正确存储在元数据中,hive.optimize.skewjoin.compiletime  将更改查询计划以处理它,而hive.optimize.skewjoin将是一个无操作。

hive.optimize.union.remove

  • 默认值: false
  • 添加In:Hive 0.10.0 with HIVE-3276

是否删除联合并在联合和联合上面的文件链接之间推送运算符。这样可以避免通过union进行额外的输出扫描。这对于联合查询是独立有用的,尤其在hive.optimize.skewjoin.compiletime设置为true 时非常有用,因为插入了额外的联合。

如果hive.merge.mapfileshive.merge.mapredfiles中的任何一个设置为true ,则会触发合并。如果用户已将hive.merge.mapfiles设置为true并将hive.merge.mapredfiles设置为false,则认为reducers的数量很少,因此无论如何文件数量都很小。但是,通过这种优化,我们可能会大幅增加文件数量。所以,我们积极合并。

hive.mapred.supports.subdirectories

  • 默认值: false
  • 添加In:Hive 0.10.0 with  HIVE-3276

正在运行的Hadoop版本是否支持表/分区的子目录。如果Hadoop版本支持表/分区的子目录,则可以应用许多Hive优化。MAPREDUCE-1501添加了此支持。

hive.mapred.mode

  • 默认值: 
    • Hive 0.x: nonstrict
    • Hive 1.x: nonstrict
    • Hive 2.x:strictHIVE-12413
  • 添加In:Hive 0.3.0

正在执行Hive操作的模式。在strict模式下,不允许运行某些有风险的查询。例如,防止全表扫描(参见  HIVE-10454),  ORDER BY需要LIMIT子句。

hive.exec.script.maxerrsize

  • 默认值: 100000
  • 添加In:Hive 0.2.0

允许脚本发送到标准错误的最大字节数(每个map-reduce任务)。这可以防止失控脚本将日志分区填充到容量中。

hive.script.auto.progress

  • 默认值: false
  • 添加In:Hive 0.4.0

Hive Tranform / Map / Reduce子句是否应该自动将进度信息发送到TaskTracker,以避免任务因不活动而被杀死。当脚本输出到stderr时,Hive会发送进度信息。此选项无需定期生成stderr消息,但用户应谨慎,因为这可能会阻止脚本中的无限循环被TaskTracker杀死。

hive.exec.script.allow.partial.consumption

  • 默认值: false
  • 添加In:Hive 0.5.0

启用后,此选项允许用户脚本成功退出,而不会消耗标准输入中的所有数据。

hive.script.operator.id.env.var

  • 默认值: HIVE_SCRIPT_OPERATOR_ID
  • 添加In:Hive 0.5.0

在用户的转换函数(用户在查询中指定的自定义映射器/缩减器)中保存唯一脚本操作员ID的环境变量的名称。

hive.script.operator.env.blacklist

  • 默认值: hive.txn.valid.txns,hive.script.operator.env.blacklist
  • 添加In:Hive 0.14.0 with HIVE-8341

默认情况下,HiveConf对象中的所有值都将转换为与键同名的环境变量(将'。'(点)转换为'_'(下划线))并设置为脚本运算符环境的一部分。但是,某些值可能会变大或无法转换为环境变量。此值提供以逗号分隔的配置值列表,这些配置值在调用脚本运算符时不会在环境中设置。默认情况下,排除有效事务列表,因为它可能会变大并且有时会被压缩,这不能很好地转换为环境变量。

另见:

  • SerDes for more hive.script。*配置属性

hive.exec.compress.output

  • 默认值: false
  • 添加In:Hive 0.2.0

它控制是否压缩查询的最终输出(到本地/ hdfs文件或Hive表)。压缩编解码器和其他选项由Hadoop配置变量mapred.output.compress *确定。

hive.exec.compress.intermediate

  • 默认值: false
  • 添加In:Hive 0.2.0

这可以控制Hive在多个map-reduce作业之间生成的中间文件是否被压缩。压缩编解码器和其他选项由Hadoop配置变量mapred.output.compress *确定。

hive.exec.parallel

  • 默认值: false
  • 添加In:Hive 0.5.0

是否并行执行作业。适用于可以并行运行的MapReduce作业,例如在连接之前处理不同源表的作业。  从Hive 0.14开始,也适用于移动可以并行运行的任务,例如移动文件以在多插入期间插入目标。

hive.exec.parallel.thread.number

  • 默认值: 8
  • 添加In:Hive 0.6.0

最多可以并行执行多少个作业。

hive.exec.rowoffset

  • 默认值: false
  • 添加In:Hive 0.8.0

是否提供行偏移虚拟列。

hive.task.progress

  • 默认值: false
  • 添加In:Hive 0.5.0
  • 删除:Hive 0.13.0与  HIVE-4518

Hive是否应在执行期间定期更新任务进度计数器。启用此功能可以在作业跟踪器中更紧密地监视任务进度,但可能会降低性能。对于hive.exec.dynamic.partition设置为true的作业,此标志自动设置为true。(此版本的配置属性已在版本0.13.0中删除。)

hive.counters.group.name

  • 默认值: HIVE
  • 添加In:Hive 0.13.0 with  HIVE-4518

查询执行期间使用的计数器的计数器组名称。计数器组用于内部Hive变量(CREATED_FILE,FATAL_ERROR等)。

hive.exec.pre.hooks

  • 默认值:(空)
  • 添加In:Hive 0.4.0

以逗号分隔的每个语句要调用的预执行挂钩列表。预执行挂钩被指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。

hive.exec.post.hooks

  • 默认值:(空)
  • 添加In:Hive 0.5.0

以逗号分隔的每个语句要调用的执行后挂钩列表。执行后挂钩被指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。

hive.exec.failure.hooks

  • 默认值:(空)
  • 添加In:Hive 0.8.0

以逗号分隔的每个语句要调用的失败挂钩列表。将on-failure钩子指定为实现org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的Java类的名称。

hive.merge.mapfiles

  • 默认值: true
  • 添加In:Hive 0.4.0

在仅限地图的作业结束时合并小文件。

hive.merge.mapredfiles

  • 默认值: false
  • 添加In:Hive 0.4.0

在map-reduce作业结束时合并小文件。

hive.mergejob.maponly

  • 默认值: true
  • 添加In:Hive 0.6.0
  • 删除:Hive 0.11.0

如果支持CombineHiveInputFormat,请尝试生成用于合并文件的仅映射作业。(此版本的配置属性已在版本0.11.0中删除。)

hive.merge.size.per.task

  • 默认值: 256000000
  • 添加In:Hive 0.4.0

作业结束时合并文件的大小。

hive.merge.smallfiles.avgsize

  • 默认值: 16000000
  • 添加In:Hive 0.5.0

当作业的平均输出文件大小小于此数量时,Hive将启动另一个map-reduce作业,以将输出文件合并为更大的文件。如果hive.merge.mapfiles为true,则仅对仅地图作业执行此操作;对于hive.merge.mapredfiles为true,仅对map-reduce作业执行此操作。

hive.heartbeat.interval

  • 默认值: 1000
  • 添加In:Hive 0.4.0

在此间隔后发送心跳 - 由mapjoin和过滤器运算符使用。

hive.auto.convert.join

  • 默认值:false 0.7.0至0.10.0; true 在0.11.0及更高版本(HIVE-3297)  
  • 添加于:0.7.0与HIVE-1642

Hive是否支持基于输入文件大小将公共连接转换为mapjoin的优化。(请注意,hive-default.xml.template在Hive 0.11.0到0.13.1中错误地将默认值设置为false。)

hive.auto.convert.join.noconditionaltask

  • 默认值: true
  • 添加In:0.11.0 with  HIVE-3784  (默认情况下改为true,HIVE-4146

Hive是否支持基于输入文件大小将公共连接转换为mapjoin的优化。如果启用此参数,并且n路连接的表/分区的n-1的大小总和小于hive.auto.convert.join.noconditionaltask.size指定的大小,则直接转换连接到mapjoin(没有条件任务)。

hive.auto.convert.join.noconditionaltask.size

  • 默认值: 10000000
  • 添加于:0.11.0与  HIVE-3784

如果禁用hive.auto.convert.join.noconditionaltask,则此参数不会生效。但是,如果它打开,并且n路连接的表/分区的n-1的大小总和小于此大小,则连接将直接转换为mapjoin(没有条件任务)。默认值为10MB。

hive.auto.convert.join.use.nonstaged

  • 默认值: false
  • 加入:0.13.0与HIVE-6144  (默认原本  true,而是改为falseHIVE-6749还0.13.0)

对于条件连接,如果来自小别名的输入流可以直接应用于连接运算符而不进行过滤或投影,则别名不需要通过映射本地任务在分布式缓存中预先准备。目前,这不适用于矢量化或Tez执行引擎。

hive.merge.nway.joins

  • 默认值: true
  • 添加于:2.2.0与  HIVE-15655 

对于相同条件下的多个连接,将连接合并到一个连接运算符中。这在大型混洗连接的情况下是有用的,以避免重新洗牌阶段。在Tez中禁用此功能通常会在左外连接或一般Snowflake架构的情况下提供更快的连接算法。

hive.udtf.auto.progress

  • 默认值: false
  • 添加In:Hive 0.5.0

Hive是否应该在使用UDTF时自动将进度信息发送到TaskTracker,以防止任务因不活动而被杀死。用户应该谨慎,因为这可能会阻止TaskTracker使用无限循环杀死任务。

hive.mapred.reduce.tasks.speculative.execution

  • 默认值: true
  • 添加In:Hive 0.5.0

是否应该启用减速器的推测执行。

hive.exec.counters.pull.interval

  • 默认值: 1000
  • 添加In:Hive 0.6.0

轮询JobTracker以计算正在运行的作业的时间间隔。它越小,在jobtracker上的负载就越多,捕获的粒度就越小。

hive.enforce.bucketing

  • 默认值: 
    • Hive 0.x: false
    • Hive 1.x: false
    • Hive 2.x:删除,这有效地使它始终为真(HIVE-12331
  • 添加In:Hive 0.6.0

是否强制执行分组。如果true在插入表格时强制执行分组。

设置为  true 支持   Hive 0.14.0和1.xx中的INSERT ... VALUES,UPDATE和DELETE事务有关打开Hive事务所需的参数的完整列表,请参阅  hive.txn.manager

hive.enforce.sorting

  • 默认值: 
    • Hive 0.x: false
    • Hive 1.x: false
    • Hive 2.x:删除,这有效地使它始终为真(HIVE-12331
  • 添加In:Hive 0.6.0

是否强制执行排序。如果为true,则在插入表时,将强制执行排序。

hive.optimize.bucketingsorting

  • 默认值: true
  • 添加In:Hive 0.11.0与HIVE-4240

如果hive.enforce.bucketinghive.enforce.sorting为true,则不要创建一个reducer来对表单的查询强制执行bucketing / sorting:

insert overwrite table T2 select * from T1;

其中T1和T2由相同的密钥分块/排序到相同数量的桶中。(在Hive 2.0.0及更高版本中,此参数不依赖于hive.enforce.bucketing  或  hive.enforce.sorting。)

hive.optimize.reducededuplication

  • 默认值: true
  • 添加In:Hive 0.6.0

如果数据已经由需要再次使用的相同密钥聚类,则删除额外的map-reduce作业。应始终将其设置为true。由于它是一项新功能,因此可以进行配置。

hive.optimize.reducededuplication.min.reducer

  • 默认值: 4
  • 添加In:Hive 0.11.0与HIVE-2340

通过将子RS的key / parts / reducer-num移动到父RS,减少重复数据删除合并两个RS(减少宿操作符)。这意味着如果子RS的reducer-num是固定的(按顺序或强制分组)并且很小,它可以使非常慢的单个MR。如果减速器的数量小于指定值,则将禁用优化。

hive.optimize.correlation

  • 默认值: false
  • 添加In:Hive 0.12.0 with HIVE-2206

利用查询内相关性。有关详细信息,请参阅Correlation Optimizer设计文档。

hive.optimize.limittranspose

是否通过左/右外连接或联合推动限制。如果值为true且外部输入的大小足够小(如hive.optimize.limittranspose.reductionpercentagehive.optimize.limittranspose.reductiontuples中所指定),则将限制推送到外部输入或联合; 为了保持语义正确,限制保持在联接或联合之上。

hive.optimize.limittranspose.reductionpercentage

hive.optimize.limittranspose为true时,此变量指定优化程序为应用规则而应获取的联合或输入的外部输入大小的最小百分比(小数)减少。

hive.optimize.limittranspose.reductiontuples

hive.optimize.limittranspose为true时,此变量指定优化程序为应用规则而应获取的联接或输入的外部输入的元组数量的最小减少量。

hive.optimize.filter.stats.reduction

  • 默认值: false
  • 添加In:Hive 2.1.0 with  HIVE-13269

是否使用列统计信息简化过滤器运算符中的比较表达式。

hive.optimize.sort.dynamic.partition

  • 默认值:true在Hive 0.13.0和0.13.1中; false 在Hive 0.14.0及更高版本(HIVE-8151
  • 添加In:Hive 0.13.0 with HIVE-6455

启用后,动态分区列将进行全局排序。这样我们只能为reducer中的每个分区值保持一个记录编写器打开,从而减少减速器的内存压力。

hive.cbo.enable

如果为true,则将启用使用Calcite框架的基于成本的优化程序

hive.cbo.returnpath.hiveop

如果为true,则对CBO逻辑计划的此优化将添加规则以在连接键上引入非空过滤。控制Calcite计划到Hive运算符转换。设置为false时覆盖hive.optimize.remove.identity.project。

hive.cbo。cnf.maxnodes

  • 默认值: -1 
  • 添加于:Hive 2.1.1与HIVE-14021

转换为合取范式(CNF)时,如果表达式超过指定的阈值,则失败; 阈值以节点数(叶子和内部节点)表示。默认值-1不会设置阈值。

hive.optimize.null.scan

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-7385

如果为true,则此优化将尝试不扫描表中的任何行,这些行可以在查询编译时确定不生成任何行(例如,其中1 = 2,其中为false,限制0等)。

hive.exec.dynamic.partition

  • 默认值:false Hive 0.9.0之前; true 在Hive 0.9.0及更高版本(HIVE-2835
  • 添加In:Hive 0.6.0

是否允许DML / DDL中的动态分区

hive.exec.dynamic.partition.mode

  • 默认值: strict
  • 添加In:Hive 0.6.0

strict模式下,用户必须指定至少一个静态分区,以防用户意外覆盖所有分区。我ñ  nonstrict 模式下,所有分区都允许是动态的

设置为  nonstrict支持INSERT ... VALUES,UPDATE和DELETE  事务(Hive 0.14.0及更高版本)。有关打开Hive事务所需参数的完整列表,请参阅  hive.txn.manager

hive.exec.max.dynamic.partitions

  • 默认值: 1000
  • 添加In:Hive 0.6.0

 允许总共创建的最大  动态分区数。

hive.exec.max.dynamic.partitions.pernode

  • 默认值: 100
  • 添加In:Hive 0.6.0

 允许在每个映射器/ reducer节点中创建的最大  动态分区数。

hive.exec.max.created.files

  • 默认值: 100000
  • 添加In:Hive 0.7.0

MapReduce作业中所有映射器/缩减器创建的HDFS文件的最大数量。

hive.exec.default.partition.name

  • 默认值: __HIVE_DEFAULT_PARTITION__
  • 添加In:Hive 0.6.0

如果动态分区列值为null /空字符串或任何其他无法转义的值,则为默认分区名称。此值不得包含HDFS URI中使用的任何特殊字符(例如,':','%','/'等)。用户必须知道动态分区值不应包含此值以避免混淆。

hive.fetch.output.serde

  • 默认值: org.apache.hadoop.hive.serde2.DelimitedJSONSerDe
  • 添加In:Hive 0.7.0

FetchTask使用SerDe来序列化获取输出。

hive.exec.mode.local.auto

  • 默认值: false
  • 添加于:Hive 0.7.0 with  HIVE-1408

让Hive确定是否自动以本地模式运行。

hive.exec.mode.local.auto.inputbytes.max

  • 默认值: 134217728
  • 添加于:Hive 0.7.0 with  HIVE-1408

hive.exec.mode.local.auto为true时,对于本地模式,输入字节应小于此值。

hive.exec.mode.local.auto.tasks.max

  • 默认值: 4
  • 添加于:Hive 0.7.0 with  HIVE-1408
  • 删除:Hive 0.9.0 with HIVE-2651

hive.exec.mode.local.auto为true时,对于本地模式,任务数应小于此值。由hive.exec.mode.local.auto.input.files.max替换为Hive 0.9.0  

hive.exec.mode.local .auto.input.files.max

  • 默认值: 4
  • 添加In:Hive 0.9.0 with HIVE-2651

hive.exec.mode.local.auto为true时,对于本地模式,任务数应小于此值。

hive.exec.drop.ignorenonexistent

如果DROP TABLE / VIEW / PARTITION / INDEX / TEMPORARY FUNCTION指定不存在的表/视图,则不报告错误。也适用于Hive 0.13.0的永久功能

hive.exec.show.job.failure.debug.info

  • 默认值: true
  • 添加In:Hive 0.7.0

如果作业失败,是否在CLI中为具有最多故障的任务提供链接,以及调试提示(如果适用)。

hive.auto.progress.timeout

  • 默认值: 0
  • 添加In:Hive 0.7.0

为脚本/ UDTF运算符运行autoprogressor的时间(以秒为单位)。永远设置为0。

hive.table.parameters.default

  • 默认值:(空)
  • 添加In:Hive 0.7.0

新创建的表的默认属性值。

hive.variable.substitute

  • 默认值: true
  • 添加In:Hive 0.7.0

这样可以使用} }和} 等语法进行替换${var${system:var${env:var

hive.error.on.empty.partition

  • 默认值: false
  • 添加In:Hive 0.7.0

如果动态分区插入生成空结果,是否抛出异常。

hive.exim.uri.scheme.whitelist

  • 默认值:hdfs,pfileHive 2.2.0之前; hdfs,pfile,file在Hive 2.2.0及更高版本中

  • 添加于:Hive 0.8.0 with HIVE-1918 ; 默认情况下,在Hive 2.2.0中使用HIVE-15151进行了更改

用于导入和导出的可接受URI方案的逗号分隔列表。

hive.limit.row.max.size

  • 默认值: 100000
  • 添加In:Hive 0.8.0

当为简单的LIMIT尝试较小的数据子集时,我们需要保证每行至少具有多少大小。

hive.limit.optimize.limit.file

  • 默认值: 10
  • 添加In:Hive 0.8.0

为简单的LIMIT尝试较小的数据子集时,我们可以采样的最大文件数。

hive.limit.optimize.enable

  • 默认值: false
  • 添加In:Hive 0.8.0

是否允许优化以首先尝试较小的数据子集以进行简单的LIMIT。

hive.limit.optimize.fetch.max

  • 默认值: 50000
  • 添加In:Hive 0.8.0

如果是获取查询,则简单LIMIT的较小数据子集允许的最大行数。插入查询不受此限制的限制。

hive.rework.mapredwork

  • 默认值: false
  • 添加In:Hive 0.8.0

应该重新修改mapred工作。这首先由SymlinkTextInputFormat引入,以在编译时用实际路径替换符号链接文件。

hive.sample.seednumber

  • 默认值: 0
  • 添加In:Hive 0.8.0

用于百分比抽样的数字。通过更改此数字,用户将更改采样数据的子集。

hive.autogen.columnalias.prefix.label

  • 默认值: _c
  • 添加In:Hive 0.8.0

字符串在自动生成列别名时用作前缀。默认情况下,前缀标签将附加列位置编号以形成列别名。如果在没有显式别名的select子句中使用聚合函数,则会发生自动生成。

hive.autogen.columnalias.prefix.includefuncname

  • 默认值: false
  • 添加In:Hive 0.8.0

是否在Hive列自动生成的列别名中包含函数名称。

hive.exec.perf.logger

  • 默认值: org.apache.hadoop.hive.ql.log.PerfLogger
  • 添加In:Hive 0.8.0

负责记录客户端性能指标的类。必须是org.apache.hadoop.hive.ql.log.PerfLogger的子类。

hive.start.cleanup.scratchdir

在启动Hive服务器(或HiveServer2)时清理Hive 暂存目录。这不是多用户环境的选项,因为它会意外删除正在使用的暂存目录。

hive.scratchdir.lock

  • 默认值: false
  • 添加In:Hive 1.3.0和2.1.0(但不是2.0.x)与HIVE-13429

如果为true,则在暂存目录中保存一个锁定文件。如果Hive进程死亡并且意外地留下悬挂的scratchdir,  cleardanglingscratchdir工具  将删除它。

如果为false,则不会创建锁定文件,因此cleardanglingscratchdir工具无法删除任何悬空的临时目录。

hive.output.file.extension

  • 默认值:(空)
  • 添加In:Hive 0.8.1

用作输出文件的文件扩展名的字符串。如果未设置,则默认为文本文件的编解码器扩展名(例如“.gz”),否则为无扩展名。

hive.insert.into.multilevel.dirs

  • 默认值: false
  • 添加In:Hive 0.8.1

是否插入多级嵌套目录,如“从表中插入目录'/ HIVEFT25686 / chinna /'”。

插入不存在的嵌套目录时可能会显示以下错误:
ERROR org.apache.hadoop.hive.ql.exec.Task:失败,异常无法重命名:<xxxx>

要启用自动子目录生成集'hive.insert.into.multilevel.dirs = true'

hive.conf.validation

  • 默认值: true
  • 添加In:Hive 0.10.0 with HIVE-2848

为已注册的Hive配置启用类型检查。

从Hive 0.14.0(HIVE-7211)开始,配置名称以“hive”开头。被视为Hive系统属性。使用hive.conf.validation为  true(默认值)时,任何尝试设置以“hive”开头的配置属性。未注册到Hive系统的将抛出异常。

hive.fetch.task.conversion

  • 默认值:  minimal 在Hive 0.10.0到0.13.1中,more 在Hive 0.14.0及更高版本中
  • 添加In:Hive 0.10.0 with HIVE-2925 ; 使用HIVE-7397在Hive 0.14.0中更改了默认值 

某些选择查询可以转换为单个FETCH任务,从而最大限度地减少延迟。目前,查询应该是单一来源的,没有任何子查询,并且不应该有任何聚合或区别(引起RS-ReduceSinkOperator,需要MapReduce任务),横向视图和连接。

支持的值为none,minimalmore

none:禁止hive.fetch.task.conversion(在蜂房0.14.0加入值HIVE-8389
1.  minimal:SELECT *,上分区列FILTER(WHERE和HAVING子句),LIMIT只有
more:SELECT,FILTER,仅限LIMIT(包括TABLESAMPLE,虚拟列)

“ more”可以在SELECT子句中使用任何类型的表达式,包括UDF。
(UDTF和侧面观点尚不支持 - 见  HIVE-5718。)

hive.map.groupby.sorted

  • 默认值:
    • Hive 0.x和1.x: false
    • Hive 2.0及更高版本:  true (HIVE-12325
  • 添加In:Hive 0.10.0 with  HIVE-3432

如果表的bucketing / sorting属性与分组键完全匹配,则是否 使用BucketizedHiveInputFormat在映射器中执行group by。唯一的缺点 是它将映射器的数量限制为文件数量。

hive.map.groupby.sorted.testmode

如果表的bucketing / sorting属性与分组键完全匹配,则是否 使用BucketizedHiveInputFormat在映射器中执行group by。如果设置了测试模式, 则不会转换计划,但会将查询属性设置为表示相同。(在2.0.0版中删除了此配置属性。)

hive.groupby.orderby.position.alias

  • 默认值: false
  • 添加In:Hive 0.11.0与  HIVE-581
  • 不推荐使用:Hive 2.2.0 with HIVE-15797

是否在GROUP BYORDER BY子句中启用列位置别名(从Hive 2.2.0开始不推荐使用;请改用hive.groupby.position.aliashive.orderby.position.alias)。

hive.groupby.position.alias

  • 默认值: false
  • 添加In:Hive 2.2.0 with  HIVE-15797

是否在GROUP BY中启用列位置别名。

hive.orderby.position.alias

  • 默认值: true
  • 添加In:Hive 2.2.0 with  HIVE-15797

是否在ORDER BY中启用列位置别名。

hive.fetch.task.aggr

  • 默认值: false
  • 添加In:Hive 0.12.0 with HIVE-4002(描述在Hive 0.13.0中添加了HIVE-5793

没有group-by子句的聚合查询(例如select count(*) from src)在单个reduce任务中执行最终聚合。如果将此参数设置为  true,则Hive会将最终聚合阶段委派给获取任务,这可能会缩短查询时间。

hive.fetch.task.conversion.threshold

  • 默认值:  -1Hive 0.14.0中的Hive 0.13.0和0.13.1,  1073741824 (1 GB) 
  • 添加In:Hive 0.13.0 with HIVE-3990 ; 使用HIVE-7397在Hive 0.14.0中更改了默认值

应用hive.fetch.task.conversion的输入阈值(以字节为单位)。如果目标表是本机的,则输入长度通过文件长度的总和来计算。如果它不是本机的,则表的存储处理程序可以选择实现org.apache.hadoop.hive.ql.metadata.InputEstimator接口。负阈值意味着   应用hive.fetch.task.conversion而没有任何输入长度阈值。

hive.limit.pushdown.memory.usage

  • 默认值: -1
  • 添加In:Hive 0.12.0 with  HIVE-3562

用于顶部K选择的RS运算符中的散列的最大内存。默认值“-1”表示没有限制。

hive.cache.expr.evaluation

  • 默认值: true
  • 添加In:Hive 0.12.0 with HIVE-4209
  • 错误修复:带有HIVE-7314的 Hive 0.14.0 (在另一个UDF或Hive函数中使用UDF时,表达式缓存不起作用)

如果为true,则将缓存引用两次或更多次的确定性表达式的评估结果。例如,在“...其中键+ 10> 10或键+ 10 = 0”这样的过滤条件中,表达式“key + 10”将被评估/缓存一次并重新用于以下表达式(“key + 10 = 0" )。目前,这仅适用于select或filter运算符中的表达式。

hive.resultset.use.unique.column.names

  • 默认值: true
  • 添加In:Hive 0.13.0 with HIVE-6687

如果需要,通过使用表别名限定列名来使结果集中的列名唯一。如果查询类型为“select *”,或者查询显式使用表别名“select r1.x ..”,则表别名将添加到列名称中。

hive.support.quoted.identifiers

  • 默认值: column
  • 添加In:Hive 0.13.0 with HIVE-6013

是否使用带引号的标识符。值可以是“ none”或“ column”。

column:列名称可以包含任何Unicode字符。在backticks(`)中指定的任何列名都按字面处理。在反引号字符串中,使用双反引号(``)来表示反引号字符。
none:只有字母数字和下划线字符在标识符中有效。反引号名称被解释为正则表达式。这也是0.13.0之前版本中的行为。

hive.plan.serialization.format

  • 默认值: kryo
  • 添加In:Hive 0.13.0 with  HIVE-1511
  • 删除了一个值:Hive 2.0.0 with HIVE-12609不再支持javaXML

查询客户端和任务节点之间的计划格式序列化。两个支持的值是kryojavaXML(在Hive 2.0.0之前)。Kryo是默认值(从Hive 2.0.0开始,Kryo是唯一支持的值)。

hive.exec.check.crossproducts

  • 默认值: true
  • 添加In:Hive 0.13.0 with  HIVE-6643

检查查询计划是否包含跨产品。如果有,请向会话控制台输出警告。

hive.display.partition.cols.separately

  • 默认值: true
  • 添加In:Hive 0.13.0 with  HIVE-6689

在较旧的Hive版本(0.10及更早版本)中,在DESCRIBE TABLE中显示列时,分区列或非分区列之间没有区别。从版本0.12开始,它们将单独显示。如果需要,此标志将允许您获取旧行为。请参阅HIVE-6689补丁中的测试用例。

hive.limit.query.max.table.partition

为了保护群集,它控制可以为每个分区表扫描多少个分区。默认值“-1”表示没有限制。分区限制不会影响仅元数据查询。

hive.files.umask.value

已过时:dfs.umaskHive创建的文件夹的值。

hive.optimize.sampling.orderby

  • 默认值: false
  • 添加In:Hive 0.12.0 with HIVE-1402

在order-by子句上使用sampling进行并行执行。

hive.optimize.sampling.orderby .nu​​mber

  • 默认值: 1000
  • 添加In:Hive 0.12.0 with  HIVE-1402

使用hive.optimize.sampling.orderby = true,获取计算分区键的总样本数。

hive.optimize.sampling.orderby .percent

  • 默认值:0.1
  • 添加In:Hive 0.12.0 with  HIVE-1402

使用hive.optimize.sampling.orderby = true,将选择行的概率。

蜂巢。COMPAT

  • 默认值:0.12
  • 添加In:Hive 0.13.0 with  HIVE-6012

通过设置所需的向后兼容级别来启用(可配置)已弃用的算术运算行为。默认值为数值运算提供向后兼容的返回类型。其他受支持的版本号为数字操作提供了更新的行为,例如0.13给出了HIVE-5356中引入的更多SQL兼容的返回类型。

值“latest”指定最新支持的级别。目前,这只影响整数的划分。

设置为0.12(默认值)可在Hive 0.12及更早版本中维护除法行为:int / int = double。
设置为0.13会在Hive 0.13及更高版本中显示除法行为:int / int = decimal。

无效设置将导致错误消息,并将使用默认支持级别。

hive.optimize.constant.propagation

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-5771

是否启用常量传播优化器。

hive.entity.capture.transform

启用捕获转换URI的编译器读取实体,可以在语义和exec挂钩中进行内省。

hive.support.sql11.reserved.keywords

  • 默认值: true
  • 添加In:Hive 1.2.0 with  HIVE-6617

是否  启用对SQL2011保留关键字的支持。 启用时,将支持(部分)SQL2011 保留关键字

hive.log.explain.output

启用后,将在log4j INFO级别和HiveServer2 WebUI / Drilldown / Query Plan中记录查询的EXPLAIN EXTENDED输出。

Hive 3.1.0开始,此配置属性仅记录到log4j INFO。牛逼o记录的EXPLAIN EXTENDED  在WebUI中输出/追溯/查询计划从蜂巢3.1.0起,使用hive.server2.webui.explain.output。 

hive.explain.user

  • 默认值: false
  • 添加In:Hive 1.2.0 with  HIVE-9780

是否在用户级别显示说明结果。 启用后,将在用户级别记录查询的EXPLAIN输出。(仅限Tez。对于Spark,请参阅hive.spark.explain.user。)

hive.typecheck.on.insert

  • 默认值:true
  • 添加In:带有HIVE-5297的 Hive 0.12.0 用于插入分区
  • 扩展In:Hive 1.2与HIVE-10307进行更改,描述分区等。

是否检查,转换和规范化分区规范中指定的分区值以符合分区列类型。

hive.exec.temporary.table.storage

  • 默认值: default

  • 添加In:Hive 1.1.0 with  HIVE-7313

预计[一memoryssddefault]。

定义临时表的存储策略。内存,ssd和默认值之间的选择。请参阅  HDFS存储类型和存储策略

hive.optimize.distinct.rewrite

  • 默认值: true

  • 添加In:Hive 1.2.0 with  HIVE-10568

当适用时,这种优化重写不同的集合 从一单级到多级聚合。在所有情况下,这可能不是最佳的。理想情况下,是否触发它应该是基于成本的决策。在Hive为此建立成本模型之前,这是配置驱动的。

hive.optimize.point.lookup

  • 默认值: true

  • 添加In:Hive 2.0.0 with  HIVE-11461

是否将Filter运算符中的OR子句转换为IN子句。

hive.optimize.point.lookup.min

  • 默认值: 31

  • 添加In:Hive 2.0.0 with  HIVE-11573

转换为IN子句所需的OR子句的最小数量。

hive.allow.udf.load.on.demand

  • 默认值: false

  • 添加于:Hive 2.1.0 with  HIVE-13596

是否根据需要启用从Metastore加载UDF; 这主要与HS2相关,是Hive 1.2之前的默认行为。

hive.async.log.enabled

  • 默认值: true

  • 添加In:Hive 2.1.0 with  HIVE-13027

是否启用Log4j2的异步日志记录。异步日志记录可以 显着提高性能,因为日志记录将在 使用LMAX中断队列缓冲日志消息的单独线程中处理。

请参阅https://logging.apache.org/log4j/2.x/manual/async.html  的优点和 缺点。

hive.msck.repair.batch.size

  • 默认值:0
  • 添加于:Hive 2.2.0 with HIVE-12077

批量运行MSCK REPAIR TABLE命令。如果存在大量未跟踪的分区,则通过为属性配置值,它将在内部批量执行。该属性的默认值为零,这意味着它将立即执行所有分区。

hive.exec.copyfile.maxnumfiles

  • 默认值:1
  • 添加于:Hive 2.3.0 with  HIVE-14864

Hive用于在目录之间执行顺序HDFS复制的最大文件数。分布式副本(distcp)将用于更大数量的文件,以便可以更快地完成副本。

hive.exec.copyfile.maxsize

  • 默认值:32兆字节
  • 添加In:Hive 1.1.0 with  HIVE-8750

Hive用于在目录之间执行单个HDFS复制的最大文件大小(以字节为单位)。分布式副本(distcp)将用于更大的文件,以便更快地完成复制。

hive.exec.stagingdir

  • 默认值: .hive-staging
  • 添加于:Hive 1.1.0 with  HIVE-8750

将在表位置内创建的目录名称,以支持HDFS加密。hive.exec.scratchdir 除了只读表之外,这将替换查询结果。在所有情况下hive.exec.scratchdir ,仍然用于其他临时文件,例如工作计划。

hive.query.lifetime.hooks

  • 默认值:(空)
  • 添加于:Hive 2.3.0 with  HIVE-14340

以逗号分隔的钩子列表,用于实现QueryLifeTimeHook。这些将在查询编译之前/之后以及在查询执行之前/之后按指定的顺序触发。从Hive 3.0.0(HIVE-16363)开始,此配置可用于指定QueryLifeTimeHookWithParseHooks的实现。如果指定了它们,那么它们将在与QueryLifeTimeHooks相同的位置调用,并将在前后查询解析期间调用。

hive.remove.orderby.in.subquery

  • 默认值: true
  • 添加In:Hive 3.0.0 with  HIVE-6348

如果设置为true,则将删除子查询和视图中的无限制排序/排序。

SerDes和I / O.

串行解串器

hive.script.serde

  • 默认值: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  • 添加In:Hive 0.4.0

默认SerDe用于将输入数据传输到用户脚本并从用户脚本读取输出数据。

hive.script.recordreader

  • 默认值: org.apache.hadoop.hive.ql.exec.TextRecordReader
  • 添加In:Hive 0.4.0

用于从用户脚本读取数据的默认记录阅读器。

hive.script.recordwriter

  • 默认值: org.apache.hadoop.hive.ql.exec.TextRecordWriter
  • 添加In:Hive 0.5.0

用于将数据写入用户脚本的默认记录编写器。

hive.default.serde

  • 默认值: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  • 添加于:Hive 0.14 with  HIVE-5976

默认的SerDe Hive将用于未指定SerDe的存储格式。当前未指定SerDe的存储格式包括“TextFile,RcFile”。  

有关存储格式和SerDes的更多信息,请参阅  Native SerDes的注册

hive.lazysimple.extended_boolean_literal

  • 默认值: false
  • 添加于:Hive 0.14与  HIVE-3635

除了'TRUE'和'FALSE'之外,LazySimpleSerDe使用此属性来确定它是否将'T','t','F','f',  '1'和'0'视为扩展的合法布尔文字。 。 默认值为false,这意味着只有'TRUE'和'FALSE'被视为合法的  布尔文字。

I / O

hive.io .exception.handlers

  • 默认值:(空)
  • 添加In:Hive 0.8.1

I / O异常处理程序类名列表。这用于构造异常处理程序列表,以处理记录读取器抛出的异常。

hive.input.format

默认输入格式。如果遇到CombineHiveInputFormat问题,请将其设置为HiveInputFormat。

另见:

文件格式

hive.default.fileformat

  • 默认值: TextFile
  • 添加In:Hive 0.2.0

CREATE TABLE语句的缺省文件格式。选项包括TextFile,SequenceFile,RCfile,ORC和Parquet。

用户可以明确地说CREATE TABLE ... STORED as TEXTFILE | SEQUENCEFILE | RCFILE | ORC | AVRO | INPUTFORMAT ... OUTPUTFORMAT ...来覆盖。(RCFILE在Hive 0.6.0中添加,ORC在0.11.0中添加,AVRO在0.14.0中添加,Parquet在2.3.0中)有关详细信息请参阅行格式,存储格式和SerDe

hive.default.fileformat.managed

  • 默认值: none
  • 添加In:Hive 1.2.0 with HIVE-9915

仅应用于托管表的CREATE TABLE语句的缺省文件格式。将使用hive.default.fileformat指定的格式创建外部表。选项为  none,TextFile,SequenceFile,RCfile,ORC和Parquet(从Hive 2.3.0开始)。 保留此null将导致对所有本机表使用hive.default.fileformat。对于非本机表,文件格式由存储处理程序确定,如下所示(有关托管/外部和本机/非本机术语的详细信息,请参阅StorageHandlers部分)。

 

本地人

非母语

管理hive.default.fileformat.managed(或回退到hive.default.fileformat)默认文件格式不涵盖
外部hive.default.fileformat默认文件格式不涵盖

hive.fileformat.check

  • 默认值: true
  • 添加In:Hive 0.5.0

加载数据文件时是否检查文件格式。

hive.query.result.fileformat

  • 默认值:
    • Hive 0.x,1.x和2.0: TextFile
    • Hive 2.1向前: SequenceFile
  • 添加In:Hive 0.7.0 with  HIVE-1598

用于查询中间结果的文件格式。选项包括TextFile,SequenceFile和RCfile。自Hive 2.1.0(HIVE-1608)以来,默认值更改为SequenceFile 。

RCFile格式

hive.io .rcfile.record.interval

  • 默认值:  2147483647
  • 添加In:Hive 0.4.0 with  HIVE-352 ; 使用HIVE-7211添加到Hive 0.14.0中的HiveConf.java

hive.io .rcfile.column.number.conf

  • 默认值:  0
  • 添加In:Hive 0.4.0 with  HIVE-352 ; 使用HIVE-7211添加到Hive 0.14.0中的HiveConf.java 

hive.io .rcfile.tolerate.corruptions

  • 默认值:  false
  • 添加In:Hive 0.4.0 with  HIVE-352 ; 使用HIVE-7211添加到Hive 0.14.0中的HiveConf.java 

hive.io .rcfile.record.buffer.size

  • 默认值:4194304
  • 添加In:Hive 0.4.0 with  HIVE-352 ; 使用HIVE-7211添加到Hive 0.14.0中的HiveConf.java 

ORC文件格式

ORC文件格式是在Hive 0.11.0中引入的。有关详细信息,请参阅ORC文件

除了本节中列出的配置属性外,其他部分中的某些属性也与ORC相关:

hive.exec.orc.memory.pool

  • 默认值: 0.5
  • 添加In:Hive 0.11.0与HIVE-4248

ORC文件编写者可以使用的最大堆积分数。

hive.exec.orc.write.format

  • 默认值:(空)
  • 添加In:Hive 0.12.0 with HIVE-4123 ; 使用HIVE-5091,默认值从0.11变为null (同样在Hive 0.12.0中)

定义要写入的文件的版本。可能的值为0.11和0.12。如果未定义此参数,ORC将使用Hive 0.12中引入的行程编码(RLE)。除0.11之外的任何值都会导致0.12编码。

未来可能会引入其他值(参见HIVE-6002)。

hive.exec.orc.base.delta.ratio

  • 默认值:8
  • 添加In:Hive 1.3.0和2.1.0 with  HIVE-13563

根据STRIPE_SIZE和BUFFER_SIZE定义基本编写器和增量写入器的比率。

hive.exec.orc.default.stripe.size

  • 默认值:  256*1024*1024 (268,435,456)in 0.13.0; 
                             64*1024*1024 (67,108,864)在0.14.0
  • 添加In:Hive 0.13.0 with HIVE-5425 ; 默认值为0.14.0,HIVE-7231HIVE-7490

定义默认的ORC条带大小(以字节为单位)。

hive.exec.orc.default.block.size

  • 默认值:  256*1024*1024 (268,435,456)
  • 添加In:Hive 0.14.0 with  HIVE-7231

定义ORC文件的默认文件系统块大小。

hive.exec.orc.dictionary.key.size.threshold

  • 默认值: 0.8
  • 添加In:Hive 0.12.0 with  HIVE-4324

如果字典中的键数大于非空行总数的这一部分,请关闭字典编码。使用1始终使用字典编码。

hive.exec.orc.default.row.index.stride

  • 默认值: 10000
  • 添加In:Hive 0.13.0与  HIVE-5728

以行数定义默认ORC索引步幅。(Stride是索引条目表示的行数。)

hive.exec.orc.default.buffer.size

  • 默认值:  256*1024 (262,144)
  • 添加In:Hive 0.13.0与  HIVE-5728

定义默认的ORC缓冲区大小(以字节为单位)。

hive.exec.orc.default.block.padding

  • 默认值: true
  • 添加In:Hive 0.13.0与  HIVE-5728

定义默认的块填充。在Hive 0.12.0中添加了块填充(HIVE-5091,“ORC文件应该具有将条带填充到HDFS块边界的选项”)。

hive.exec.orc.block.padding.tolerance

  • 默认值: 0.05
  • 添加In:Hive 0.14.0 with  HIVE-7231

将块填充的容差定义为条带大小的小数部分(例如,默认值0.05是条带大小的5%)。对于64Mb ORC条带和256Mb HDFS块的默认值,将使用默认的hive.exec.orc.block.padding.tolerance为256Mb块中的填充保留最大3.2Mb。在这种情况下,如果块中的可用大小超过3.2Mb,则将插入一个新的较小条带以适合该空间。这将确保没有写入的条带将跨越块边界并导致节点本地任务内的远程读取。

hive.exec.orc.default.compress

  • 默认值: ZLIB
  • 添加In:Hive 0.13.0与  HIVE-5728

定义ORC文件的默认压缩编解码器。

hive.exec.orc.encoding.strategy

  • 默认值: SPEED
  • 添加In:Hive 0.14.0 with  HIVE-7219

定义编写数据时要使用的编码策略。更改此值只会影响整数的轻量级编码。此标志不会更改更高级别压缩编解码器(如ZLIB)的压缩级别。可能的选项是SPEED和COMPRESSION。

hive.orc.splits.include.file.footer

如果启用,ORC生成的拆分   将包含有关文件中条带的元数据。远程读取此数据(从客户端或HiveServer2计算机)并发送到所有任务。

hive.orc.cache.stripe.details.size

用于保存 客户端中缓存的ORC拆分的元信息的高速缓存大小  。

hive.orc.cache.use.soft.references

  • 默认值: false
  • 添加In:Hive 1.3.0,Hive 2.1.1,Hive 2.2.0 with HIVE-13985

默认情况下,ORC输入格式用于存储ORC文件页脚的缓存使用缓存对象的硬引用。将此设置为true有助于避免内存压力下的内存不足问题(在某些情况下),但代价是整体查询性能略有不可预测性。

hive.io.sarg.cache.max.weight.mb

  • 默认值: 10
  • 添加In:Hive 2.2.1,Hive 2.3.1,Hive 2.4.0,Hive 3.0.0 with  HIVE-17669

SearchArgument Cache允许的最大权重,以兆字节为单位。默认情况下,缓存允许最大权重为10MB,之后将逐出条目。设置为0,完全禁用SearchArgument缓存。

hive.orc.compute.splits.num.threads

ORC  应该使用多少个线程  来并行创建拆分。

hive.exec.orc.split.strategy

  • 默认值:HYBRID
  • 添加In:Hive 1.2.0 with  HIVE-10114

ORC  应该使用什么策略  来创建执行拆分。可用选项是“BI”,“ETL”和“HYBRID”。

如果文件少于预期的映射器计数,HYBRID模式将读取所有文件的页脚,如果平均文件大小小于默认HDFS块大小,则切换到每个文件生成1个拆分。ETL策略始终在生成拆分之前读取ORC页脚,而BI策略生成每个文件的快速拆分而不从HDFS读取任何数据。

hive.exec.orc.skip.corrupt.data

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-6382

如果ORC阅读器遇到损坏的数据,则此值将用于确定是否跳过损坏的数据或抛出异常。默认行为是抛出异常。

hive.exec.orc.zerocopy

使用带有ORC的zerocopy读取。(这需要Hadoop 2.3或更高版本。)

hive.merge.orcfile.stripe.level

  • 默认值: true
  • 添加In:Hive 0.14.0 with HIVE-7509

在使用ORC文件格式编写表时启用hive.merge.mapfileshive.merge.mapredfileshive.merge.tezfiles时,启用此配置属性将对小ORC文件执行条带级快速合并。请注意,启用此配置属性不会遵循填充容差配置(hive.exec.orc.block.padding.tolerance)。

hive.orc.row.index.stride.dictionary.check

  • 默认值: true
  • 添加In:Hive 0.14.0 with HIVE-7832

如果启用字典检查将在第一行索引步长(默认10000行)之后发生,否则字典检查将在写入第一个条带之前发生。在这两种情况下,之后将保留使用字典的决定。

hive.exec.orc.compression.strategy

  • 默认值: SPEED
  • 添加In:Hive 0.14.0 with  HIVE-7859

定义在写入数据时使用的压缩策略。 这会更改更高级别压缩编解码器(如ZLIB)的压缩级别。

价值可以是  SPEED或  COMPRESSION

实木复合地板

Parquet由Hive 0.10,0.11和0.12中的插件支持,本机在Hive 0.13及更高版本中。有关详细信息,请参阅Parquet

hive.parquet.timestamp.skip.conversion

  • 默认值: true
  • 添加In:Hive 1.2.0 with  HIVE-9482

3.1.2之前Parquet的Hive实现以UTC文件形式存储时间戳,该标志允许在读取可能没有这样做的其他工具创建的 Parquet文件时跳过转换。

Avro公司

有关详细信息,请参阅AvroSerDe

hive.avro.timestamp.skip.conversion

  • 默认值:false
  • 添加于:Hive 3.1.2与  HIVE-21291

一些较旧的Hive实现(3.1.2之前版本)以UTC规范化方式编写Avro时间戳,而从3.1.0版本到3.1.2 Hive编写时区不可知时间戳。
将此标志设置为true会将旧时间戳视为时区不可知。将其设置为false会将旧时间戳视为UTC规范化。
此标志不影响从Hive 3.1.2开始编写的时间戳,这些时间戳实际上与时区无关( 有关详细信息,请参阅HIVE-21002)。
注意:此属性将影响使用AvroSerDe的HBase文件和Kafka表中的时间戳(在有效负载中)/ Avro文件,这不是关于Kafka时间戳)被反序列化 - 请记住,使用AvroSerDe序列化的时间戳将在序列化期间进行UTC规范化。因此,如果使用HBase或Kafka,请将此属性设置为false

矢量

Hive在版本0.13.0(HIVE-4160HIVE-5283)中添加了矢量化查询执行。 有关更多信息,请参阅设计文档Vectorized Query Execution 

hive.vectorized.execution.enabled

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-5283

此标志应设置为true以启用查询执行的矢量化模式。 默认值为false。

hive.vectorized.execution.reduce.enabled

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-7405

此标志应设置为true以启用查询执行的reduce端的矢量化模式。默认值是true。

hive.vectorized.execution.reduce.groupby.enabled

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-8052

此标志应设置为true以启用reduce侧DB2 BY查询执行的向量化模式。 默认值是true。

hive.vectorized.execution.reducesink.new.enabled

  • 默认值: true
  • 添加In:Hive 2.0.0 with  HIVE-12290

此标志应设置为true以使用ReduceSink启用查询的新矢量化。

hive.vectorized.execution.mapjoin.native.enabled

  • 默认值: true
  • 添加In:Hive 1.2.0 with  HIVE-9824

此标志应设置为true以使用MapJoin启用查询的本机(即非传递)矢量化。

hive.vectorized.execution.mapjoin.native.multikey.only.enabled

  • 默认值: false
  • 添加In:Hive 1.2.0 with  HIVE-9824

此标志应设置为true以限制在使用MapJoin的查询中将本机矢量映射连接哈希表用于MultiKey。

hive.vectorized.execution.mapjoin.minmax.enabled

  • 默认值: false
  • 添加In:Hive 1.2.0 with  HIVE-9824

此标志应设置为true,以使矢量映射连接哈希表能够使用MapJoin对整数连接查询使用max / max过滤。

hive.vectorized.execution.mapjoin.overflow.repeated.threshold

  • 默认值: -1
  • 添加In:Hive 1.2.0 with  HIVE-9824

向量映射中匹配的小表行数加入哈希表,我们在溢出向量化行批处理中使用重复字段优化来使用MapJoin进行连接查询。-1均值的值确实使用了连接结果优化。否则,阈值可以是0到最大整数。

hive.vectorized.execution.mapjoin.native.fast.hashtable.enabled

  • 默认值: false
  • 添加In:Hive 1.2.0 with  HIVE-9824

此标志应设置为true,以便在使用MapJoin的查询中使用本机快速矢量映射连接哈希表。

hive.vectorized.groupby.checkinterval

  • 默认值: 100000
  • 添加In:Hive 0.13.0 with  HIVE-5692

在执行重新计算平均条目大小之前添加到GROUP BY聚合哈希的条目数。

hive.vectorized.groupby.maxentries

  • 默认值: 1000000
  • 添加In:Hive 0.13.0 with  HIVE-5692

向量GROUP BY聚合哈希表中的最大条目数。无论内存压力如何,超过此值都会触发冲洗。

hive.vectorized.use.vectorized.input.format

  • 默认值: true
  • 添加In:Hive 2.1.0 with HIVE-12878

此标志应设置为true,以允许Hive利用支持向量化的输入格式。默认值是true。 

hive.vectorized.use.vector.serde.deserialize

  • 默认值: false
  • 添加In:Hive 2.1.0 with HIVE-12878

此标志应设置为true以使用向量反序列化启用向量化行。默认值为false。

hive.vectorized.use.row.serde.deserialize

  • 默认值: false
  • 添加In:Hive 2.1.0 with HIVE-12878

此标志应设置为true以使用行反序列化启用矢量化。默认值为false。

hive.vectorized.input.format.excludes

  • 默认值:(空)
  • 添加于:Hive 2.4.0 with  HIVE-17534

此标志应用于提供逗号分隔的完全限定类名列表,以使用向量化文件inputformat从向量化执行中排除某些FileInputFormats。请注意,根据是否启用了hive.vectorized.use.vector.serde.deserializehive.vectorized.use.row.serde.deserialize,该输入格式仍然可以执行矢量化执行。 

MetaStore

除了本节中列出的Hive Metastore属性外,其他部分还列出了一些属性:

hive.metastore.local

  • 默认值: true
  • 添加In:Hive 0.8.1
  • 删除:Hive 0.10与HIVE-2585

控制是否连接到远程Metastore服务器或在Hive Client JVM中打开新的Metastore服务器。从Hive 0.10开始,不再使用它。相反,如果hive.metastore.uris设置,remote则以其他方式假设模式local

hive.metastore.uri.selection

  • 默认值:RANDOM
  • 添加In:Hive 3.0.0

确定Metastore客户端用于连接到远程Metastore的选择机制。SEQUENTIAL意味着将挑选来自作为hive.metastore.uris一部分指定的URI的第一个有效Metastore。RANDOM意味着将随机挑选Metastore。

javax.jdo.option.ConnectionURL

  • 默认值: jdbc:derby:;databaseName=metastore_db;create=true
  • 添加In:Hive 0.6.0

JDBC连接字符串用于JDBC Metastore。

javax.jdo.option.ConnectionDriverName

  • 默认值: org.apache.derby.jdbc.EmbeddedDriver
  • 添加In:Hive 0.8.1

JDBC Metastore的驱动程序类名称。

javax.jdo.PersistenceManagerFactoryClass

  • 默认值: org.datanucleus.jdo.JDOPersistenceManagerFactory
  • 添加In:Hive 0.8.1

实现JDO PersistenceManagerFactory的类。

javax.jdo.option.DetachAllOnCommit

  • 默认值: true
  • 添加In:Hive 0.8.1

从会话中分离所有对象,以便在提交事务后可以使用它们。

javax.jdo.option.NonTransactionalRead

  • 默认值: true
  • 添加In:Hive 0.8.1

在交易之外阅读。

javax.jdo.option.ConnectionUserName

  • 默认值: APP
  • 添加In:Hive 0.8.1

用于对Metastore数据库的用户名。

javax.jdo.option.ConnectionPassword

  • 默认值: mine
  • 添加In:Hive 0.3.0

用于对Metastore数据库的密码。

有关备用配置,请参阅  从Hive配置中删除Hive Metastore密码

javax.jdo.option.Multithreaded

  • 默认值: true
  • 添加In:Hive 0.8.0

如果多个线程同时通过JDO访问Metastore,则将此设置为true。

datanucleus.connectionPoolingType

  • 默认值:Hive中的DBCP 0.7到0.11; BoneCP在0.12到2.3之间; HikariCP 3.0及更高版本
  • 添加In:Hive 0.7.0

从3.0版开始使用HikariCP连接池用于JDBC Metastore(HIVE-16383)。

在版本0.12到2.3(HIVE-4807)中使用BoneCP连接池用于JDBC Metastore ,或在版本0.7到0.11中使用DBCP连接池。

从Hive 2.2.0(HIVE-13159)开始,此参数也可以设置为none

datanucleus.connectionPool.maxPoolSize

  • 默认值:10
  • 添加In:Hive 3.0.0

指定连接池中的最大连接数。

注意:配置的大小将由2个连接池(TxnHandler和ObjectStore)使用。

配置最大连接池大小时,建议考虑Metastore实例的数量和HiveServer2实例的数量

配置嵌入式Metastore。要获得最佳性能,请将config设置为满足以下条件

(2 * pool_size * metastore_instances + 2 * pool_size * HS2_instances_with_embedded_metastore)=(2 * physical_core_count + hard_disk_count)。

datanucleus.validateTables

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.schema.validateTables

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.validateColumns

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.schema.validateColumns

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.validateConstraints

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.schema.validateConstraints

根据代码验证现有架构。如果要验证现有架构,请启用此选项。

datanucleus.storeManagerType

  • 默认值: rdbms
  • 添加In:Hive 0.7.0

元数据存储类型。

datanucleus.fixedDatastore

  • 默认值: 
    • Hive 0.x: false
    • Hive 1.x: false
  • 添加In:Hive 0.12.0 with  HIVE-3764
  • 删除:Hive 2.0.0与HIVE-6113

指示是否允许更新架构。

datanucleus.autoCreateSchema

如果不存在,则在启动时创建必要的模式。创建一次后将其设置为false。

在Hive 0.12.0及更高版本中,如果 是hive.metastore.schema.verification,则禁用datanucleus.autoCreateSchematrue

datanucleus.schema.autoCreateAll

如果不存在,则在启动时创建必要的模式。创建一次后,将其重置为false。

如果 是hive.metastore.schema.verification,则禁用datanucleus.schema.autoCreateAlltrue

datanucleus.autoStartMechanismMode

  • 默认值: checked
  • 添加In:Hive 0.7.0

如果元数据表不正确,则抛出异常。

datanucleus.transactionIsolation

  • 默认值: read-committed
  • 添加In:Hive 0.7.0

标识生成的默认事务隔离级别。

datanucleus.cache.level2

  • 默认值: false
  • 添加In:Hive 0.7.0

此参数不执行任何操作 
警告说明:对于大多数安装,Hive不应启用DataNucleus L2缓存,因为这可能导致正确性问题。因此,有些人将此参数设置为false,假设这会禁用缓存 - 不幸的是,它没有。要实际禁用缓存,请将datanucleus.cache.level2.type设置 为“none”。

datanucleus.cache.level2.type

  • 默认值:none在Hive 0.9及更高版本中; SOFT在Hive 0.7到0.8.1
  • 添加In:Hive 0.7.0

NONE =禁用datanucleus 2级缓存,SOFT =基于软参考的缓存,WEAK =基于弱参考的缓存。
警告说明:对于大多数Hive安装,启用datanucleus缓存可能会导致正确性问题,并且很危险。这应保留为“无”。

datanucleus.identifierFactory

  • 默认值: datanucleus
  • 添加In:Hive 0.7.0

生成表/列名称时使用的标识符工厂的名称等。“datanucleus”用于向后兼容。

datanucleus.plugin.pluginRegistryBundleCheck

  • 默认值: LOG
  • 添加In:Hive 0.7.0

定义在找到并重复插件包时会发生什么:EXCEPTION,LOG或NONE。

hive.metastore.warehouse.dir

  • 默认值: /user/hive/warehouse
  • 添加In:Hive 0.2.0

仓库的默认数据库的位置。

hive.warehouse.subdir.inherit.perms

  • 默认值: false
  • 添加In:Hive 0.9.0 with  HIVE-2504
  • 删除:Hive 3.0.0 with  HIVE-16392

如果表目录应继承仓库或数据库目录的权限,而不是使用从dfs umask派生的权限创建,则将此属性设置为true。(在Hive 0.9.0发布之前,此配置属性替换了hive.files.umask.value)(在3.0.0版中删除了此配置属性,在Hive中的权限继承中有更多详细信息)

HIVE-6892和次级JIRA中,Hive-0.14.0改变了标志的行为。Hive中的权限继承中的更多详细信息  。

hive.metastore.execute.setugi

  • 默认值:false在Hive 0.8.1到0.13.0中,true 从Hive 0.14.0开始
  • 添加In:带有HIVE-2616的 Hive 0.8.1,  在Hive 0.14.0中使用HIVE-6903更改默认值

在不安全模式下,true将导致Metastore使用客户端报告的用户和组权限执行DFS操作。请注意,必须在客户端和服务器端都设置此属性。进一步注意,这是最好的努力。如果客户端将其设置为true并且服务器将其设置为false,则将忽略客户端设置。

hive.metastore.event.listeners

  • 默认值:(空)
  • 添加于:Hive 0.8.0 with HIVE-2038

Metastore事件的逗号分隔侦听器列表。

hive.metastore.partition.inherit.table.properties

  • 默认值:(空)
  • 添加In:Hive 0.8.1

表属性中出现的逗号分隔键列表,这些键将继承到新创建的分区。*暗示所有密钥都将被继承。

hive.metastore.end.function.listeners

  • 默认值:(空)
  • 添加In:Hive 0.8.1

Metastore函数结束时以逗号分隔的侦听器列表。

hive.metastore.event.expiry.duration

  • 默认值: 0
  • 添加In:Hive 0.8.0

事件从事件表到期的持续时间(以秒为单位)。

hive.metastore.event.clean.freq

  • 默认值: 0
  • 添加In:Hive 0.8.0

计时器任务运行以清除Metastore中过期事件的频率(以秒为单位)。

hive.metastore.connect.retries

  • 默认值:3
  • 添加In:Hive 0.6.0

打开与Metastore的连接时的重试次数。

hive.metastore.client.connect.retry.delay

  • 默认值: 1
  • 添加In:Hive 0.7.0

客户端在连续尝试连接之间等待的秒数。

hive.metastore.client.socket.timeout

  • 默认值:20在Hive 0.7到0.13.1; 600在Hive 0.14.0及更高版本中
  • 添加In:Hive 0.7.0; 使用HIVE-7140在Hive 0.14.0中更改了默认值

MetaStore客户端套接字超时,以秒为单位。

hive.metastore.rawstore.impl

  • 默认值: org.apache.hadoop.hive.metastore.ObjectStore
  • 添加In:Hive 0.8.1

实现org.apache.hadoop.hive.metastore.rawstore接口的类的名称。此类用于存储和检索原始元数据对象,如表,数据库。

从Hive 3.0开始,有两种实现方式。默认实现(ObjectStore)直接查询数据库。HIVE-16520引入了一个新的CachedStore(全类名称  org.apache.hadoop.hive.metastore.cache.CachedStore),它将检索到的对象缓存在Metastore的内存中。

metastore.cached.rawstore.impl

  • 默认值:org.apache.hadoop.hive.metastore.ObjectStore
  • 添加于:Hive 3.0

如果您正在使用CachedStore,那么这是要使用的包装RawStore类的名称。

metastore.cached.rawstore.cache.update.frequency

  • 默认值:60
  • 添加于:Hive 3.0.0

以秒为单位的时间 - 从Metastore DB更新Metastore缓存。

metastore.cached.rawstore.cached.object.whitelist

  • 默认值: 。*
  • 添加于:Hive 3.0.0

逗号分隔的正则表达式列表,用于选择将由CachedStore缓存的表(及其分区,统计信息等)。这可以与hive.metastore.cached.rawstore.cached.object.blacklist。结合使用。

示例:.*, db1.*, db2\.tbl.*.最后一项可能会覆盖之前指定的模式。

metastore.cached.rawstore.cached.object.blacklist

  • 默认值:(空)
  • 添加于:Hive 3.0.0

逗号分隔的正则表达式列表,用于过滤掉将由CachedStore缓存的表(及其分区,统计信息等)。这可以与hive.metastore.cached.rawstore.cached.object.whitelist。结合使用。

示例:db2.*, db3\.tbl1, db3\..*.最后一项可能会覆盖之前指定的模式。

metastore.cached.rawstore.max.cache.memory

  • 默认值:1gb
  • 添加于:Hive 3.0.0

缓存对象可以使用的最大内存(以字节为单位)。使用的内存是根据缓存中表和分区的估计大小计算的。将其设置为负值会禁用内存估计。

hive.metastore.batch.retrieve.max

  • 默认值: 300
  • 添加In:Hive 0.8.0

可以从一个批次中的Metastore中检索最大对象数(表/分区)。数字越大,Hive Metastore服务器所需的往返次数越少,但它也可能导致客户端更高的内存需求。

hive.metastore.ds.connection.url.hook

  • 默认值:(空)
  • 添加In:Hive 0.6.0

用于检索JDO连接URL的挂钩的名称。如果为空,则使用javax.jdo.option.ConnectionURL中的值。

hive.metastore.ds.retry.attempts

  • 默认值: 1
  • 添加In:Hive 0.6.0

如果存在连接错误,则重试Metastore调用的次数。

hive.metastore.ds.retry.interval

  • 默认值: 1000
  • 添加In:Hive 0.6.0

Metastore重试尝试之间的毫秒数。

hive.metastore.server.min.threads

  • 默认值: 200
  • 添加In:Hive 0.6.0 with  HIVE-1270

Thrift服务器池中的最小工作线程数。

hive.metastore.server.max.threads

  • 默认值:
    • Hive 0.x和1.0.x: 100000
    • Hive 1.1.0及更高版本:  1000HIVE-8666
  • 添加In:Hive 0.6.0 with HIVE-1270

Thrift服务器池中的最大工作线程数。

hive.metastore.server.max.message.size

  • 默认值: 100*1024*1024
  • 使用HIVE-8680添加In:Hive 1.1.0(向Hive 1.0.2移植)

Hive Metastore将接受的最大消息大小(以字节为单位)。

hive.metastore.server.tcp.keepalive

  • 默认值: true
  • 添加In:Hive 0.6.0

是否为Metastore服务器启用TCP keepalive。Keepalive将防止半开连接的累积。

hive.metastore.sasl.enabled

  • 默认值: false
  • 添加In:Hive 0.7.0

如果为true,则将使用SASL保护Metastore thrift接口。客户端必须使用Kerberos进行身份验证。

hive.metastore.kerberos.keytab.file

  • 默认值:(空)
  • 添加In:Hive 0.7.0

包含Metastore thrift服务器的服务主体的Kerberos Keytab文件的路径。

hive.metastore.kerberos.principal

  • 默认值: hive-metastore/_HOST@EXAMPLE.COM
  • 添加In:Hive 0.7.0

Metastore thrift服务器的服务主体。特殊字符串_HOST将自动替换为正确的主机名。

注意:此元数据由Metastore进程用于与其他服务进行身份验证(例如,用于HDFS操作)。

hive.metastore.client.kerberos.principal

面向客户端的Hive Metastore的Kerberos服务主体。如果未设置,则默认为为hive.metastore.kerberos.principal设置的值,以实现向后兼容性。

另请参阅  hive.server2.authentication.client.kerberos.principal

hive.metastore.cache.pinobjtypes

  • 默认值: Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order
  • 添加In:Hive 0.7.0

应该在高速缓存中固定的逗号分隔的Metastore对象类型的列表。

hive.metastore.authorization.storage.checks

  • 默认值: false
  • 添加In:Hive 0.8.0

如果Metastore对底层存储执行授权检查以执行drop-partition等操作(如果相关用户没有删除存储上相应目录的权限,则禁止drop-partition)。

hive.metastore.thrift.framed.transport.enabled

  • 默认值: false
  • 添加In:Hive 0.10.0 with HIVE-2767

如果为true,则Metastore Thrift接口将使用TFramedTransport。如果为false(默认),则使用标准TTransport。

hive.metastore.schema.verification

  • 默认值:false 
  • 添加In:Hive 0.12.0 with  HIVE-3764

实施Metastore架构版本一致性。
True:验证存储在Metastore中的版本信息是否与Hive jar中的版本信息匹配。还禁用自动模式迁移尝试(请参阅datanucleus.autoCreateSchemadatanucleus.schema.autoCreateAll)。用户需要在Hive升级后手动迁移模式,以确保正确的Metastore模式迁移。
False:如果存储在Metastore中的版本信息与来自Hive jar的版本信息不匹配,则发出警告。

有关更多信息,请参阅Metastore架构一致性和升级

hive.metastore.disallow.incompatible.col.type.changes

  • 默认值:
    • Hive 0.x和1.x: false 
    • Hive 2.x及更高版本:  true (HIVE-12320
  • 添加In:Hive 0.12.0 with  HIVE-4409

如果为true,则不允许将列类型(例如STRING)更改为不兼容类型(例如MAP <STRING,STRING>)的ALTER TABLE操作。RCFile默认SerDe(ColumnarSerDe)以这样的方式序列化值,即数据类型可以从字符串转换为任何类型。地图也被序列化为字符串,也可以作为字符串读取。但是,对于任何二进制序列化,情况并非如此。在随后尝试访问旧分区时,阻止ALTER TABLE会阻止ClassCastExceptions。

原始类型(如INT,STRING,BIGINT等)彼此兼容且不会被阻止。

有关详细信息,请参阅HIVE-4409

hive.metastore.integral.jdo.pushdown

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-6052

允许对Metastore中的整数分区列进行JDO查询下推。默认关闭。这提高了整数列的Metastore性能,尤其是在存在大量分区的情况下。但是,对于未规范化的整数值,它无法正常工作(例如,如果它们具有像0012这样的前导零)。如果启用了Metastore direct SQL并且可以正常工作(hive.metastore.try.direct.sql),则此优化也无关紧要。

hive.metastore.try.direct.sql

  • 默认值: true
  • 添加In:Hive 0.12.0 with  HIVE-4051

Hive Metastore是否应该尝试使用直接SQL查询而不是DataNucleus来获取某些读取路径。当按照数量级获取许多分区或列统计信息时,这可以提高Metastore性能; 但是,不保证可以在所有RDBMS-es和所有版本上运行。如果SQL失败,Metastore将回退到DataNucleus,因此即使SQL不适用于您的数据存储上的所有查询,它也是安全的。如果所有SQL查询都失败(例如,您的Metastore由MongoDB支持),您可能希望禁用此选项以节省尝试和回退成本。

这可以基于每个客户端使用“set metaconf:hive.metastore.try.direct.sql = <value>”命令进行配置,从Hive 0.14.0(HIVE-7532)开始。

hive.metastore.try.direct.sql.ddl

  • 默认值: true
  • 添加In:Hive 0.13.0 with  HIVE-5626

hive.metastore.try.direct.sql相同,用于修改Metastore数据的事务中的read语句。由于Postgres中的非标准行为,如果直接SQL选择查询在事务内部具有不正确的语法或类似内容,则整个事务将失败并且无法回退到DataNucleus。 如果在您的情况下发生这种情况,您应该禁用事务中直接SQL的使用。

这可以在每个客户端的基础上使用“set metaconf:hive.metastore.try.direct.sql.ddl = <value>”命令进行配置,从Hive 0.14.0(HIVE-7532)开始。

hive.metastore.orm.retrieveMapNullsAsEmptyStrings 

  • 默认值: false
  • 添加In:Hive 1.0.0 with HIVE-8485

Thrift不支持映射中的空值,因此从对象关系映射(ORM)检索的映射中存在的任何空值必须被修剪或转换为空字符串。某些后备数据库(如Oracle)将空字符串保留为空值,因此需要将此参数设置为true以反转该行为。对于其他人,默认的修剪行为是正确的。

hive.direct.sql.max.query.length 

  • 默认值: 100
  • 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)

由直接SQL生成的查询字符串的最大大小(以KB为单位)。

hive.direct.sql.max.elements.in.claus e

  • 默认值: 1000
  • 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)

由直接SQL生成的IN子句中的最大值数。一旦超出,它将被分成多个OR分隔的IN子句。

hive.direct.sql.max.elements.values.clause

  • 默认值: 1000
  • 使用HIVE-12349添加In:Hive 1.3.0和2.1.0(但不是2.0.x)

由直接SQL生成的INSERT语句的VALUES子句中的最大值数。

hive.metastore.port

  • 默认值: 9083
  • 添加In:Hive 1.3.0 with  HIVE-9365

Hive Metastore侦听器端口。

hive.metastore.initial.metadata.count.enabled 

  • 默认值: true
  • 添加于:Hive 2.1.0 with HIVE-12628

在Metastore启动时为度量标准启用元数据计数。

hive.metastore.limit.partition.request

  • 默认值:-1
  • 添加In:Hive 2.2.0 with  HIVE-13884

这限制了可以从给定表的Metastore请求的分区数。如果尝试获取每个表的更多分区而不是配置的限制,则不会执行查询。值“-1”表示无限制。此参数优先于  hive.limit.query.max.table.partition  (不建议使用;在3.0.0中删除)。

hive.metastore.fastpath

  • 默认值:  false
  • 添加In:Hive 2.0.0 with  HIVE-9453

用于避免Metastore中的所有代理和对象副本。注意,如果设置了这个,你必须使用一个本地Metastore(hive.metastore.uris 必须为空)否则是未定义的,并且很可能会产生不希望的行为。

Hive Metastore连接池配置

Hive Metastore支持多种连接池实现(例如hikaricp,bonecp,dbcp)。以'hikari'或'dbcp'为前缀的配置属性将按原样传播到Hive的连接池实现。Jdbc连接URL,用户名,密码和连接池最大连接数是例外,必须使用其特殊的Hive Metastore配置属性进行配置。

加入:蜂房3.0.0与  HIVE-17318和  HIVE-17319

Hive Metastore HBase

Hive 的HBase Metastore的开发始于2.0.0版(HIVE-9452),但工作已经停止,代码在3.0.0版(HIVE-17234)中从Hive中删除。

在版本2.xx中为HBase Metastore创建了更多配置属性 - 这里没有记录它们。有关完整列表,请参阅有关HIVE-17234文档说明

hive.metastore.hbase.cache.size

(此处的配置属性永远不应该记录在案,因为它在HIVE-9693初始发布之前已被删除。)

hive.metastore.hbase.cache.ttl

统计信息项在缓存中的秒数。

hive.metastore.hbase.file.metadata.threads

  • 默认值: 1
  • 添加In:Hive 2.1.0 with  HIVE-12075

用于在后台读取文件元数据以缓存它的线程数。

HiveServer2

HiveServer2在Hive 0.11.0中添加了HIVE-2935。有关更多信息,请参阅HiveServer2概述,  设置HiveServer2HiveServer2客户端

除了本节中列出的配置属性外,其他部分还列出了一些HiveServer2属性:

hive.server2.thrift.port

  • 默认值: 10000
  • 添加In:Hive 0.11.0与  HIVE-2935

HiveServer2 Thrift接口的端口号。可以通过设置$ HIVE_SERVER2_THRIFT_PORT来覆盖。

hive.server2.thrift.bind.host

  • 默认值: localhost
  • 添加In:Hive 0.11.0与  HIVE-2935

绑定运行HiveServer2 Thrift接口的主机。可以通过设置$ HIVE_SERVER2_THRIFT_BIND_HOST来覆盖。

hive.server2.thrift.min.worker.threads

  • 默认值: 5
  • 添加In:Hive 0.11.0与  HIVE-2935

最小Thrift工作线程数。

hive.server2.thrift.max.worker.threads

  • 默认值:100 在Hive 0.11.0中,500在Hive 0.12.0及更高版本中
  • 添加In:带有HIVE-2935的 Hive 0.11.0  ,HIVE-4617在HIVE 0.12.0中更改了默认值

Thrift工作线程的最大数量。

hive.server2.thrift.worker.keepalive.time

  • 默认值: 60
  • 添加于:Hive 0.14.0与HIVE-7353

空闲工作线程的保持活动时间(以秒为单位)。当工人数量>最小工人时,在此时间间隔后,  多余的线程将被杀死。

hive.server2.thrift.max.message.size

  • 默认值: 100*1024*1024
  • 添加于:Hive 1.1.0(后向移植到Hive 1.0.2)与HIVE-8680

HiveServer2服务器将接受的最大邮件大小(以字节为单位)。

hive.server2.authentication

  • 默认值: NONE
  • 添加In:Hive 0.11.0与  HIVE-2935

客户端验证类型。

NONE:无身份验证检查 - 普通SASL传输
LDAP:基于LDAP / AD的身份验证
KERBEROS:Kerberos / GSSAPI身份验证
CUSTOM:自定义身份验证提供程序(与属性hive.server2.custom.authentication.class一起使用)
PAM:可插入身份验证模块(在Hive中添加) 0.13.0含HIVE-6466
NOSASL:原料转运(Hive 0.13.0中添加) 

hive.server2.authentication.kerberos.keytab

  • 默认值:(空)
  • 添加In:Hive 0.11.0与  HIVE-2935

服务器主体的Kerberos密钥表文件。

hive.server2.authentication.kerberos.principal

  • 默认值:(空)
  • 添加In:Hive 0.11.0与  HIVE-2935

Kerberos服务器主体。

hive.server2.authentication.client.kerberos.principal

HA HiveServer2使用的Kerberos服务器主体。另请参阅hive.metastore.client.kerberos.principal

hive.server2.custom.authentication.class

  • 默认值:(空)
  • 添加In:Hive 0.11.0与  HIVE-2935

自定义验证类。当属性  hive.server2.authentication  设置为'CUSTOM'时使用。提供的类必须是org.apache.hive.service.auth.PasswdAuthenticationProvider接口的正确实现。HiveServer2将调用其Authenticate(用户,传递)方法来验证请求。该实现可以选择性地扩展Hadoop的org.apache.hadoop.conf.Configured类以获取Hive的Configuration对象。

hive.server2.enable.doAs

将此属性设置为true将使HiveServer2在用户进行调用时执行Hive操作。

hive.server2.authentication.ldap.url

  • 默认值:(空)
  • 添加In:Hive 0.11.0与  HIVE-2935

LDAP连接URL(值)可以是SPACE分隔的URL列表,指向多个LDAP服务器以实现弹性。在连接成功之前,将按指定的顺序尝试URL。

hive.server2.authentication.ldap.baseDN

  • 默认值:(空)
  • 添加In:Hive 0.11.0与  HIVE-2935

LDAP基本DN(可分辨名称)。

hive.server2.authentication.ldap.guidKey

  • 默认值: uid
  • 添加In:Hive 2.1.0 with HIVE-13295

此属性用于指示在为LDAP连接构建bindDN时使用的前缀(仅使用baseDN时)。所以bindDN将是“<guidKey> = <user / group>,<baseDN>”。如果在配置中使用userDNPattern和/或groupDNPattern,则不需要guidKey。只使用baseDN时主要需要。

hive.server2.authentication.ldap.Domain

  • 默认值:(空)
  • 添加In:Hive 0.12.0 with HIVE-4707

LDAP域。

hive.server2.authentication.ldap.groupDNPattern

  • 默认值:(空)
  • 添加于:Hive 1.3 with  HIVE-7193

COLON分隔的字符串模式列表,用于表示LDAP组的基本DN。使用“%s”(其中插入实际组名称)。有关 详细信息,请参阅  组成员身份

一个字符串模式的示例:uid =%s,OU = Groups,DC = apache,DC = org

hive.server2.authentication.ldap.groupFilter

  • 默认值:(空)
  • 添加于:Hive 1.3 with  HIVE-7193

用户应该属于的COMMA分隔的组名列表(至少其中一个组),以便成功进行身份验证。有关 详情,请参阅  组成员

hive.server2.authentication.ldap.groupMembershipKey

组对象上的LDAP属性名称,其中包含作为组成员的用户,组和联系人对象的可分辨名称列表。例如:member,uniqueMember或memberUid。

查找特定用户所属的LDAP组名时,此属性用于LDAP搜索查询。此属性指示的LDAP属性值应为用户的完整DN或短用户名或用户ID。例如,包含“member:uid = fooUser,ou = Users,dc = domain,dc = com”的“fooGroup”的组条目将帮助确定“fooUser”属于LDAP组“fooGroup”。

有关详细示例,请参阅组成员身份

如果自定义配置的LDAP查询返回组而不是用户(从Hive 2.1.1开始),则此属性还可用于  查找用户。有关详细信息,请参阅自定义LDAP查询中的组支持

hive.server2.authentication.ldap.userMembershipKey

  • 默认值:null
  • 添加于:Hive 2.2.0 with  HIVE-15076

用户对象上的LDAP属性名称,其中包含用户是直接成员的组,主要组除外,该组由primaryGroupId表示。例如:memberOf。

hive.server2.authentication.ldap.groupClassKey

  • 默认值: groupOfNames
  • 添加于:Hive 1.3 with  HIVE-13295

此属性在LDAP搜索查询中用于查找用户所属的LDAP组名。此属性的值用于构造LDAP组搜索查询,用于指示组的objectClass是什么。每个LDAP组都有某些objectClass。例如:group,groupOfNames,groupOfUniqueNames等。

有关 详细示例,请参阅  组成员身份

hive.server2.authentication.ldap.userDNPattern

  • 默认值:(空)
  • 添加于:Hive 1.3 with  HIVE-7193

COLON分隔的字符串模式列表,用于表示LDAP用户的基本DN。使用“%s”(其中插入实际用户名)。有关 详细信息,请参阅  用户搜索列表

一个字符串模式的示例:uid =%s,OU = Users,DC = apache,DC = org

hive.server2.authentication.ldap.userFilter

  • 默认值:(空)
  • 添加于:Hive 1.3 with  HIVE-7193

以COMMA分隔的用户名列表,如果在LDAP中找到用户,则认证将成功。有关 详情,请参阅  用户搜索列表

hive.server2.authentication.ldap.customLDAPQuery

  • 默认值:(空)
  • 添加于:Hive 1.3 with  HIVE-7193

用户指定的自定义LDAP查询,用于授予/拒绝身份验证请求。如果用户是查询结果集的一部分,则身份验证成功。有关 详细信息,请参阅  自定义查

hive.server2.authentication.ldap.binddn

  • 默认值:(空)
  • 添加于:Hive 4.0 with  HIVE-21009

指定绑定到LDAP进行身份验证时使用的完全限定域用户,而不是使用用户本身。这允许所有用户在LDAP上没有搜索权限的情况,而只需要绑定用户具有搜索权限。

可能值的示例:uid = binduser,OU = Users,DC = apache,DC = org

hive.server2.authentication.ldap.bindpw

  • 默认值:(空)
  • 添加于:Hive 4.0 with  HIVE-21009

绑定域名的密码。可以直接在配置文件中指定此密码,也可以在集群的凭据提供程序中指定此密码。如果设置了hive.server2.authentication.ldap.binddn,则必须在某处设置此设置。

hive.server2.global.init.file.location

HiveServer2全局init文件的位置或包含.hiverc文件的目录。如果设置了该属性,则该值必须是init文件所在的init文件或目录的有效路径。

hive.server2.transport.mode

服务器传输模式。值可以是“二进制”或“http”。

hive.server2.thrift.http.port

  • 默认值: 10001
  • 添加In:Hive 0.12.0

处于HTTP模式时的端口号。

hive.server2.thrift.http.path

处于HTTP模式时URL端点的路径组件。

hive.server2.thrift.http.min.worker.threads

  • 默认值: 5
  • 添加In:Hive 0.12.0

处于HTTP模式时的最小工作线程数。

hive.server2.thrift.http.max.worker.threads

  • 默认值: 500
  • 添加In:Hive 0.12.0

处于HTTP模式时的最大工作线程数。

hive.server2.thrift.http.max.idle.time

  • 默认值:1800s(即1800秒)

  • 添加于:HIV -7169中的 Hive 0.14.0 

处于HTTP模式时服务器上连接的最大空闲时间。

hive.server2.thrift.http.worker.keepalive.time

空闲的http工作线程的保持活动时间(以秒为单位)。当工人数量>最小工人时,在此时间间隔后,  多余的线程将被杀死。

hive.server2.thrift.sasl.qop

  • 默认值: auth
  • 添加In:Hive 0.12.0

Sasl QOP值; 将其设置为以下值之一,以便为HiveServer2与客户端的通信启用更高级别的保护。

“auth” - 仅限身份验证(默认)
“auth-int” - 身份验证和完整性保护
“auth-conf” - 身份验证加完整性和机密性保护

请注意,在大多数情况下,将hadoop.rpc.protection设置为比HiveServer2更高的级别是没有意义的。HiveServer2忽略hadoop.rpc.protection而转而使用hive.server2.thrift.sasl.qop。

仅当HiveServer2配置为使用Kerberos身份验证时,此选项才适用。

hive.server2.async.exec.threads

  • 默认值:50在Hive 0.12.0中,  100在Hive 0.13.0及更高版本中
  • 添加In:Hive 0.12.0 with HIVE-4617,默认值在Hive 0.13.0中更改为HIVE-5229

HiveServer2的异步线程池中的线程数。

hive.server2.async.exec.shutdown.timeout

  • 默认值: 10
  • 添加In:Hive 0.12.0 with  HIVE-4617

HiveServer2关闭等待异步线程终止的时间(以秒为单位)。

hive.server2.table.type.mapping

此设置反映了HiveServer2将如何报告JDBC的表类型以及检索可用表和支持的表类型的其他客户端实现。

HIVE:暴露Hive的本机表类型,如MANAGED_TABLE,EXTERNAL_TABLE,VIRTUAL_VIEW 
CLASSIC:更多泛型类型,如TABLE和VIEW

hive.server2.session.hook

  • 默认值:(空)
  • 添加In:Hive 0.12.0 with HIVE-4588

HiveServer2的会话级挂钩。

hive.server2.max.start.attempts

  • 默认值: 30
  • 添加In:Hive 0.13.0 with  HIVE-5794

HiveServer2在退出之前尝试启动的次数,在重试之间休眠60秒。默认值30将继续尝试30分钟。

hive.server2.async.exec.wait.queue.size

  • 默认值: 100
  • 添加In:Hive 0.13.0 with  HIVE-5229

HiveServer2中异步线程池的等待队列大小。达到此限制后,异步线程池将拒绝新请求。

hive.server2.async.exec.keepalive.time

  • 默认值: 10
  • 添加In:Hive 0.13.0 with  HIVE-5229

空闲HiveServer2异步线程(来自线程池)在终止之前等待新任务到达的时间(以秒为单位)。

hive.server2.long.polling.timeout

  • 默认值: 5000L
  • 添加In:Hive 0.13.0 with HIVE-5217

在响应使用长轮询的异步调用之前,HiveServer2将等待的时间(以毫秒为单位)。

hive.server2.allow.user.substitution

  • 默认值: true
  • 添加In:Hive 0.13.0

允许将备用用户指定为HiveServer2打开连接请求的一部分。

hive.server2.authentication.spnego.keytab

  • 默认值:(空)
  • 添加In:Hive 0.13.0

SPNEGO主体的Keytab文件,可选。典型值看起来像/etc/security/keytabs/spnego.service.keytab。启用Kerberos安全性并使用HTTP传输模式时,HiveServer2将使用此密钥表。仅当要在身份验证中使用SPNEGO时才需要设置此项。

仅当 指定了有效的hive.server2.authentication.spnego.principal  和  hive.server2.authentication.spnego.keytab时,才会遵守SPNEGO身份验证  。

hive.server2.authentication.spnego.principal

  • 默认值:(空)
  • 添加In:Hive 0.13.0

SPNEGO服务主体,可选。典型值看起来像HTTP/_HOST@EXAMPLE.COM。启用Kerberos安全性并使用HTTP传输模式时,HiveServer2将使用SPNEGO服务主体。仅当要在身份验证中使用SPNEGO时才需要设置此项。

hive.server2.authentication.pam.services

  • 默认值:(空)
  • 添加In:Hive 0.13.0 with HIVE-6466

hive.server2.authentication  类型为PAM 时应使用的基础PAM服务的列表。/etc/pam.d中必须存在具有相同名称的文件。

hive.server2.use.SSL

  • 默认值: false
  • 添加In:Hive 0.13.0 with HIVE-5351

将此设置为true以在HiveServer2中使用SSL加密。

hive.server2.keystore.path

  • 默认值:(空)
  • 添加In:Hive 0.13.0 with  HIVE-5351

SSL证书密钥库位置。

hive.server2.keystore.password

  • 默认值:(空)
  • 添加In:Hive 0.13.0 with  HIVE-5351

SSL证书密钥库密码。

hive.server2.tez.default.queues

  • 默认值:(空)
  • 添加In:Hive 0.13.0 with HIVE-6325

与同名的YARN队列对应的逗号分隔值列表。在Tez模式下启动HiveServer2时,需要为多个Tez会话设置此配置,以便在群集上并行运行。

hive.server2.tez.sessions.per.default.queue

  • 默认值: 1
  • 添加In:Hive 0.13.0 with  HIVE-6325

一个正整数,用于确定应在hive.server2.tez.default.queues指定的每个队列上启动的Tez会话数。确定每个队列的并行度。

hive.server2.tez.initialize.default.sessions

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-6325

此标志在HiveServer 2中使用,使用户无需为HiveServer 2打开Tez即可使用HiveServer 2.用户可能希望在没有会话池的情况下在Tez上运行查询。

hive.server2.session.check.interval

  • 默认值:
    • Hive 0.x,1.0.x,1.1.x,1.2.0: 0ms
    • 蜂房1.2.1+,1.3+,2.X +: 6hHIVE-9842) 
  • 添加In:Hive 0.14.0 with  HIVE-5799

会话/操作超时的检查间隔,可以通过设置为零或负值来禁用。

hive.server2.idle.session.timeout

  • 默认值:
    • Hive 0.x,1.0.x,1.1.x,1.2.0: 0ms
    • Hive 1.2.1 +,1.3 +,2.x +:7d  (HIVE-9842) 
  • 添加In:Hive 0.14.0 with  HIVE-5799

将  hive.server2.session.check.interval  设置为正时间值时,会话将在此持续时间内未被访问时关闭,可以通过设置为零或负值来禁用会话。

hive.server2.idle.operation.timeout

  • 默认值:0ms
  • 添加In:Hive 0.14.0 with  HIVE-5799

将  hive.server2.session.check.interval设置为正时间值  时,在此持续时间内未访问操作时将关闭操作,可以通过设置为零值来禁用操作。

使用正值时,仅检查终端状态下的操作(已完成,已取消,已关闭,错误)。
使用负值时,无论状态如何,都会检查所有操作。

hive.server2.logging.operation.enabled

如果为true,HiveServer2将保存操作日志并使其可供客户端使用。

hive.server2.logging.operation.log.location

如果启用了日志记录功能,则存储操作日志的顶级目录。

hive.server2.logging.operation.verbose

  • 默认值: false
  • 添加In:Hive 0.14.0 with  HIVE-8785
  • 删除:Hive 1.2.0 with  HIVE-10119

何时true,HiveServer2操作日志可用于客户端将是详细的。由hive.server2.logging.operation.level替换为Hive 1.2.0 。

hive.server2.logging.operation.level

  • 默认值:执行
  • 添加In:Hive 1.2.0 with HIVE-10119

HiveServer2操作日志记录模式可供客户端在会话级别设置。

为此,hive.server2.logging.operation.enabled应设置为true。允许的值是:

  • 无:忽略任何日志记录。
  • 执行:记录任务完成情况。
  • 性能:执行+性能日志。
  • VERBOSE:所有日志。

hive.server2.thrift.http.cookie.auth.enabled

  • 默认值: true
  • 添加In:Hive 1.2.0 with HIVE-9710

如果为true,则HTTP传输模式下的HiveServer2将使用基于cookie的身份验证机制。

hive.server2.thrift.http.cookie.max.age

  • 默认值:86400s(1天)
  • 添加In:Hive 1.2.0 with  HIVE-9710

HiveServer2在HTTP模式下使用的服务器端cookie的最大年龄(以秒为单位)。

hive.server2.thrift.http.cookie.path

  • 默认值:(空)
  • 添加In:Hive 1.2.0 with  HIVE-9710

HiveServer2生成cookie的路径。

hive.server2.thrift.http.cookie.domain

  • 默认值:(空)
  • 添加In:Hive 1.2.0 with  HIVE-9710

HiveServer2生成cookie的域。

hive.server2.thrift.http.cookie.is.secure

  • 默认值: true
  • 添加In:Hive 1.2.0 with  HIVE-9710

HiveServer2生成的cookie的安全属性。

hive.server2.thrift.http.cookie.is.httponly

  • 默认值: true
  • 添加In:Hive 1.2.0 with  HIVE-9710

HiveServer2生成cookie的HttpOnly属性。

hive.server2.close.session.on.disconnect

  • 默认值: true
  • 添加In:Hive 2.1.0 with  HIVE-13415

连接关闭时会话将关闭。将此设置为false可使会话比其父连接更长。

hive.server2.xsrf.filter.enabled

  • 默认值: false
  • 添加In:Hive 2.2.0 with  HIVE-13853

如果启用,HiveServer2将阻止通过HTTP向其发出的任何请求(如果不存在X-XSRF-HEADER标头)。

hive.server2.job.credential.provider.path

  • 默认值:(空)
  • 添加In:Hive 2.2.0 with HIVE-14822

此配置属性使用户能够提供以逗号分隔的URL列表,这些URL提供Hadoop凭据提供程序的类型和位置。HiveServer2使用这些凭据提供程序提供使用MR或Spark执行引擎启动的作业特定凭证。此功能尚未针对Tez进行测试。

hive.server2.in.place.progress

  • 默认值: true
  • 添加In:Hive 2.2.0 with  HIVE-15473

允许HiveServer2发送进度条更新信息。这仅在  执行引擎  是  tez时才可用。

hive.hadoop.classpath

  • 默认值:(空)
  • 添加In:Hive 0.14.0 with  HIVE-8340

对于Windows操作系统,Hive需要在使用“ -hiveconf hive.hadoop.classpath=%HIVE_LIB%” 启动HiveServer2时传递HIVE_HADOOP_CLASSPATH Java参数。用户可以在hiveserver2.xml中设置此参数。

HiveServer2 Web UI

HiveServer2的Web界面在2.0.0版中引入(请参阅HiveServer2的Web UI)。

hive.server2.webui.host

  • 默认值: 0.0.0.0
  • 添加In:Hive 2.0.0 with  HIVE-12338

HiveServer2 Web UI将侦听的主机地址。Web UI可用于访问HiveServer2配置,本地日志和指标。它还可用于检查有关正在执行的活动会话和查询的一些信息。

hive.server2.webui.port

HiveServer2 Web UI将侦听的端口。设置为0或负数以禁用HiveServer2 Web UI功能。

hive.server2.webui.max.threads

  • 默认值: 50
  • 添加In:Hive 2.0.0 with  HIVE-12338

HiveServer2 Web UI线程的最大数量。

hive.server2.webui.max.historic.queries

  • 默认值:25
  • 添加In:Hive 2.1.0 with  HIVE-12550

HiveServer2 Web UI中显示的最大过去查询数。

hive.server2.webui.use.ssl

将此设置为true表示对HiveServer2 WebUI使用SSL加密。

hive.server2.webui.keystore.path

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with  HIVE-12471

HiveServer2 WebUI的SSL证书密钥库位置。

hive.server2.webui.keystore.password

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with  HIVE-12471

HiveServer2 WebUI的SSL证书密钥库密码。

hive.server2.webui.use.spnego

  • 默认值: false
  • 添加In:Hive 2.0.0 with  HIVE-12485 

HiveServer2 WebUI的SSL证书密钥库密码。

hive.server2.webui.spnego.keytab

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with  HIVE-12485

包含HiveServer2 WebUI SPNEGO服务主体的Kerberos Keytab文件的路径。

hive.server2.webui.spnego.principal

  • 默认值: HTTP/_HOST@EXAMPLE.COM
  • 添加In:Hive 2.0.0 with  HIVE-12485

HiveServer2 WebUI SPNEGO服务主体。特殊字符串_HOST将自动替换为hive.server2.webui.host的值或正确的主机名。

 hive.server2.webui。解释。

  • 默认值: false
  • 添加于:Hive 3.1.0 with HIVE-18469

 当此配置属性设置为true时,查询的  EXPLAIN EXTENDED输出将显示在WebUI / Drilldown / Query Plan选项卡中。

在Hive 3.1.0之前,您可以使用hive.log.explain.output而不是此配置属性。

hive.server2.webui.show.graph

  • 默认值: false
  • 添加于:Hive 4.0.0 with  HIVE-17300

将此属性设置为true可将查询计划显示为图形,而不是WebUI中的文本。仅适用于  hive.server2.webui.explain.output  设置为true。

hive.server2.webui.max.graph.size

  • 默认值: 25
  • 添加于:Hive 4.0.0 with  HIVE-17300

可以显示最多阶段图。如果阶段数超过此数量,则不会显示任何查询计划。仅在  hive.server2.webui.show.graph  和  hive.server2.webui.explain.output  设置为true时有效。

hive.server2.webui.show.stats

  • 默认值: false
  • 添加于:Hive 4.0.0 with  HIVE-17300

将此属性设置为true可在WebUI中显示MapReduce任务的统计信息和日志文件。仅在  hive.server2.webui.show.graph  和  hive.server2.webui.explain.output  设置为true时有效。

 

火花

Apache的星火在蜂巢加入1.1.0  (HIVE-7292和合并到主干JIRA的HIVE-925793529448)。有关信息,请参阅设计文档  Hive on Spark和  Hive on Spark:入门。

要将Hive执行配置为Spark,请将以下属性设置为“ spark”:

除了本节中列出的配置属性外,其他部分的一些属性也与Spark相关:

hive.spark.job.monitor.timeout

作业监视器超时以获得Spark作业状态。

hive.spark.dynamic.partition.pruning

  • 默认值: false
  • 添加In:Hive 1.3.0 with  HIVE-9152

如果为true,则会为Spark引擎启用动态分区修剪,以便通过写入临时HDFS文件来处理分区键上的连接,并稍后读取以删除不必要的分区。

hive.spark.dynamic.partition.pruning.map.join.only

  • 默认值: false
  • 添加In:Hive 3.0.0 with  HIVE-16998

与此类似hive.spark.dynamic.partition.pruning,但只有在分区表上的连接可以转换为映射连接时才启用DPP。

hive.spark.dynamic.partition.pruning.max.data.size

  • 默认值: 100MB
  • 添加In:Hive 1.3.0 with  HIVE-9152

生成分区修剪信息的维度表的最大数据大小。如果达到此限制,将关闭优化。

hive.spark.exec.inplace.progress

  • 默认值: true
  • 添加于:Hive 2.2.0 with HIVE-15039

在终端中就地更新Spark作业执行进度。

hive.spark.use.file.size.for.mapjoin

如果将此设置为true,则Hive / Spark中的mapjoin优化将使用与运算符树根上的TableScan运算符关联的源文件大小,而不是使用运算符统计信息。

hive.spark.use.ts.stats.for.mapjoin

如果将此设置为true,则Hive / Spark中的mapjoin优化将使用运算符树根处的TableScan运算符的统计信息,而不是Join运算符的父ReduceSink运算符。

hive.spark.explain.user

  • 默认值: false
  • 添加In:Hive 3.0.0 with  HIVE-11133

是否    Hive-on-Spark查询的用户级别显示解释结果。启用后,将在用户级别记录查询的EXPLAIN输出。

hive.prewarm.spark.timeout

  • 默认值:  5000ms
  • 添加In:Hive 3.0.0 with  HIVE-17362

hive.prewarm.enabled  为true 时,等待完成预热 Spark执行器的时间  

注意:Hiz on Spark的这些配置属性记录在  Tez部分中, 因为它们也会影响Tez:

hive.spark.optimize.shuffle.serde

  • 默认值: false
  • 添加In:Hive 3.0.0 with  HIVE-15104

如果将其设置为true,则Spark上的Hive将为shuffle中的数据类型注册自定义序列化程序。这应该可以减少数据的混乱。

hive.merge.sparkfiles

  • 默认值: false
  • 添加In:Hive 1.1.0 with  HIVE-7810

在Spark DAG Transformation结束时合并小文件。

hive.spark.session.timeout.period

  • 默认值:30分钟
  • 添加In:Hive 4.0.0 with  HIVE-14162

Spark Remote Driver在关闭之前应等待Spark作业提交的时间。如果在这段时间后没有启动Spark作业,Spark Remote Driver将关闭,从而释放它所持有的所有资源。权衡的是,在同一会话中运行的任何新的Hive-on-Spark查询都必须等待新的Spark Remote Driver启动。好处是,对于长时间运行的Hive会话,Spark Remote Driver不会不必要地保留资源。最低值为30分钟。

hive.spark.session.timeout.period

  • 默认值:60秒
  • 添加In:Hive 4.0.0 with  HIVE-14162

检查空闲Spark会话的频率。最小值为60秒。

hive.spark.use.op.stats

  • 默认值: true
  • 添加于:Hive 2.3.0 with  HIVE-15796

是否使用运算符统计信息来确定Hive on Spark的reducer并行性。 如果这是错误的,Hive将使用源表统计信息来确定  所有第一级reduce任务的reducer并行度,以及所有其余(第二级和之后)reducer任务的所有父级的最大reducer并行  度。

将此设置为false会触发另一种算法,用于计算每个Spark shuffle的分区数。这种新算法通常会导致每次shuffle的分区数量增加。

hive.spark.use.ts.stats.for.mapjoin

  • 默认值: false
  • 添加于:Hive 2.3.0 with  HIVE-15489

如果设置为true,则Hive / Spark中的mapjoin优化将使用运算符树根处的TableScan运算符的统计信息,而不是Join运算符的父ReduceSink运算符。当用于公共连接→映射连接转换的运算符统计信息不准确时,将此设置为true非常有用。

hive.spark.use.groupby.shuffle

  • 默认值: true
  • 添加于:Hive 2.3.0 with  HIVE-15580

设置为true时,使用Spark  RDD#groupByKey来执行group bys。设置为false时,使用Spark  RDD#repartitionAndSortWithinPartitions来执行group bys。虽然  #groupByKey在运行group by时具有更好的性能,但它可以使用过多的内存。将此设置为false可能会减少内存使用量,但会损害性能。

mapreduce.job.reduces

  • 默认值:-1(已禁用)
  • 添加于:Hive 1.1.0 with  HIVE-7567

设置每个Spark shuffle阶段的reduce任务数(例如,执行Spark shuffle时的分区数)。默认设置为-1(禁用); 相反,基于Hive数据统计信息动态计算reduce任务的数量。将此值设置为常量值会为所有Spark shuffle阶段设置相同数量的分区。

远程Spark驱动程序

远程Spark驱动程序是在Spark集群中启动的应用程序,它提交实际的Spark作业。它是在HIVE-8528中引入的  。它是在当前用户的第一个查询时初始化的长期应用程序,一直运行直到用户的会话关闭。以下属性控制远程Spark驱动程序和生成它的Hive客户端之间的远程通信。

hive.spark.client.future.timeout

从Hive客户端到远程Spark驱动程序的请求超时。

hive.spark.client.connect.timeout

远程Spark驱动程序在连接回Hive客户端时超时。

hive.spark.client.server.connect.timeout

Hive客户端和远程Spark驱动程序之间的握手超时。经过两个流程检查。

hive.spark.client.secret.bits

生成的秘密中随机性的位数,用于Hive客户端和远程Spark驱动程序之间的通信。舍入到最接近的8的倍数。

hive.spark.client.rpc.server.address

  • 默认值:hive.spark.client.rpc.server.address,localhost(如果不可用)。
  • 添加In:Hive 2.1.0 with  HIVE- 12568

HiverServer2主机的服务器地址,用于Hive客户端和远程Spark驱动程序之间的通信。

hive.spark.client.rpc.threads

远程Spark驱动程序的RPC事件循环的最大线程数。

hive.spark.client.rpc.max.size

  • 默认值:  52,428,800 (50 * 1024 * 1024,或50 MB)
  • 添加In:Hive 1.1.0 with  HIVE-9337  

Hive客户端和远程Spark驱动程序之间通信的最大消息大小(字节)。默认值为50 MB。

hive.spark.client.channel.log.level

远程Spark驱动程序的通道日志记录级别 DEBUG,ERROR,INFO,TRACE,WARN之一。如果未设置,则选择TRACE。

TEZ

Apache Tez被添加到Hive 0.13.0(HIVE-4660HIVE-6098)中。有关信息,请参阅设计文档Hive on Tez,尤其是“ 安装和配置”部分。

除了本节中列出的配置属性外,其他部分的一些属性也与Tez相关:

hive.jar.directory

这是Tez模式中的Hive将查找以查找站点范围内安装的Hive实例的位置。有关默认行为,请参阅  hive.user.install.directory

hive.user.install.directory

如果Hive(仅在Tez模式下)无法在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的默认输入格式。Tez组在AM(ApplicationMaster)中拆分。

hive.tez.input.generate.consistent.splits

在AM中生成拆分时是否生成一致的拆分位置。 

设置为false会根据线程的生成方式随机化分割的位置和顺序。

与LLAP有关。

hive.tez.container.size

默认情况下,Tez将生成一个mapper大小的容器。这可以用来覆盖默认值。

hive.tez.java.opts

默认情况下,Tez将使用map任务中的Java选项。这可以用来覆盖默认值。

hive.convert.join.bucket.mapjoin.tez

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-6447

Tez用作执行引擎时,联接是否可以自动转换为Hive中的桶映射连接(hive.execution.engine设置为“ tez”)。

hive.tez.log.level

  • 默认值: INFO
  • 添加In:Hive 0.13.0 with  HIVE-6743

用于作为DAG一部分执行的任务的日志级别。仅在使用hive.tez.java.opts配置Java选项时使用。

hive.localize.resource.wait.interval

  • 默认值: 5000
  • 添加In:Hive 0.13.0 with  HIVE-6782

等待另一个线程为Hive-Tez本地化相同资源的时间(以毫秒为单位)。

hive.localize.resource.num.wait.attempts

  • 默认值: 5
  • 添加In:Hive 0.13.0 with  HIVE-6782

等待在Hive-Tez中本地化资源的尝试次数。

hive.tez.smb.number.waves

  • 默认值: 0.5
  • 添加In:Hive 0.14.0 with  HIVE-8409

运行SMB(sort-merge-bucket)连接的wave数。占用集群的帐户。理想情况下应该是1波。

hive.tez.cpu.vcores

  • 默认值: -1
  • 添加In:Hive 0.14.0 with  HIVE-8452

默认情况下,Tez会要求将每个容器使用的MapReduce配置为多个CPU。这可以用来覆盖默认值。

hive.tez.auto.reducer.parallelism

  • 默认值: false
  • 添加In:Hive 0.14.0 with  HIVE-7158

打开Tez'自动减速器并行功能。启用后,Hive仍会估算数据大小 并设置并行度估计值。Tez将对源顶点的输出大小进行采样,并在运行时根据 需要调整估计值。

hive.tez.max.partition.factor

  • 默认值: 2
  • 添加In:Hive 0.14.0 with  HIVE-7158

当  汽车减速并行  启用此因素将在洗牌中使用过度分区数据 的边缘。

hive.tez.min.partition.factor

  • 默认值: 0.25
  • 添加In:Hive 0.14.0 with  HIVE-7158

汽车减速并行启用此因素将被用来把一个下限数量 减速器是TEZ指定。

hive.tez.exec.print.summary

  • 默认值: false
  • 添加In:Hive 0.14.0 with  HIVE-8495

如果为true,则显示在Hive CLI  或Beeline客户端上执行的每个查询的执行步骤细分。

hive.tez.exec.inplace.progress

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-8495

使用Hive CLI时,更新终端中的Tez作业执行进度。

LLAP

在Hive 2.0(HIVE-7926和相关任务)中添加了Live Long and Process(LLAP)功能。有关详细信息,请参阅Hive中的LLAP

LLAP添加以下配置属性。 

hive.llap.execution.mode

  • 默认值: none
  • 可能的值:
    • none: not tried
    • map: only map operators are considered for llap

    • all: every operator is tried; but falls back to no-llap in case of problems
    • only: same as "all" but stops with an exception if execution is not possible  (截至2.2.0与HIVE-15135) 
    • auto:转换由hive控制

  • 添加In:Hive 2.0.0 with HIVE-9635

选择查询片段是在容器中还是在LLAP中运行。当 设置为“ all”一切都在LLAP如果可能的运行; “ only”类似于“ all”但禁止回退到容器,因此如果查询无法在LLAP中运行,则查询将失败。

hive.server2.llap.concurrent.queries

  • 默认值:-1
  • 添加In:Hive 2.0.0 with HIVE-10647

通过llap并行允许的查询数。负数意味着“无限”。

LLAP客户端

hive.llap.client.consistent.splits

  • 默认值:false
  • 添加In:Hive 2.0.0 with HIVE-12470

是否设置拆分位置以匹配运行LLAP守护程序的节点,而不是使用拆分本身提供的位置。

LLAP Web服务

hive.llap.daemon.web.port

  • 默认值:15002
  • 添加In:Hive 2.0.0 with HIVE-11358

LLAP守护程序Web UI端口。

hive.llap.daemon.web.ssl

  • 默认值:false
  • 添加In:Hive 2.0.0 with HIVE-11358

LLAP守护程序Web UI是否应使用SSL

hive.llap.auto.auth

  • 默认值:true
  • 添加In:Hive 2.0.0 with ..

是否设置Hadoop配置以在LLAP Web应用程序中启用身份验证。

hive.llap.daemon.service.principal

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with HIVE-12341

LLAP守护程序的服务主体的名称。

hive.llap.daemon.service.hosts

明确指定用于LLAP调度的主机。有用于测试。默认情况下,使用YARN注册表。

hive.llap.daemon.task.preemption.metrics.intervals

  • 默认值:30,60,300
  • 添加于:Hive 2.1.0 with HIVE-13536

以逗号分隔的整数集,表示百分位延迟指标的所需翻转间隔(以秒为单位)。
由LLAP守护程序任务计划程序度量标准使用,用于终止任务(由于抢占)所花费的时间以及即将被抢占的任务所浪费的有用时间。

LLAP缓存

hive.llap.object.cache.enabled

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-9849

在LLAP中缓存对象(计划,哈希表等)

hive.llap.io.use.lrfu

  • 默认值:false
  • 添加In:Hive 2.0.0 with ..

ORC低级缓存是否应使用最低频繁/常用(LRFU)缓存策略而不是默认的先进先出(FIFO)。

hive.llap.io.lrfu.lambda

  • 默认值:0.01f
  • 可能的值:介于0和1之间
  • 添加In:Hive 2.0.0 with ..

Lambda用于ORC低级缓存LRFU缓存策略。必须在[0,1]中。

0使LRFU表现得像LFU,1使其表现得像LRU,相应的值之间的平衡。

LLAP I / O.

hive.llap.io.enabled

  • 默认值:null
  • 添加In:Hive 2.0.0,更新了HIVE-12078

是否启用LLAP I / O层。删除属性或设置为false以禁用LLAP I / O.

hive.llap.io.cache.orc.size

  • 默认值:1Gb
  • 添加In:Hive 2.0.0 with ..

IO分配器或ORC低级缓存的最大大小。

hive.llap.io.threadpool.size

  • 默认值:10
  • 添加In:Hive 2.0.0 with HIVE-10081

指定用于低级IO线程池的线程数。

hive.llap.io.orc.time.counters

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-10777

是否为LLAP IO层启用时间计数器(在HDFS中花费​​的时间等)

hive.llap.io.memory.mode

  • 默认值:缓存
  • 可能的值:cache,allocator,none
  • 添加In:Hive 2.0.0 with HIVE-12597

LLAP IO内存使用情况; 

'cache'(默认值)使用带有自定义堆外分配器的数据和元数据缓存,
'allocator'使用不带缓存的自定义分配器,
'none'也不使用(此模式可能导致性能显着下降)

hive.llap.io.allocator.alloc.min

  • 默认值:128Kb
  • 添加In:Hive 2.0.0 with HIVE-12597

LLAP伙伴分配器可能的最小分配。下面的分配填充到最小分配。
对于ORC,通常应与预期的压缩缓冲区大小相同,或者下一个最低功率为2.必须是2的幂。

hive.llap.io.allocator.alloc.max

  • 默认值:16Mb
  • 添加In:Hive 2.0.0 with HIVE-12597

LLAP伙伴分配器可能的最大分配。对于ORC,应该与最大预期的ORC压缩缓冲区大小一样大。必须是2的幂。

hive.llap.io.allocator.arena.count

  • 默认值:8
  • 添加In:Hive 2.0.0 with HIVE-12597

竞技场计数LLAP低级缓存; 缓存将以(size / arena_count)个字节的步骤分配。此大小必须<= 1Gb且> =最大分配; 如果不是这种情况,将使用调整后的尺寸。建议使用2的幂。

hive.llap.io.memory.size

  • 默认值:1Gb
  • 添加In:Hive 2.0.0 with HIVE-12597

IO分配器或ORC低级缓存的最大大小。

hive.llap.io.allocator.direct

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-12597

ORC低级缓存是否应该使用直接分配。

hive.llap.io .allocator.nmap

  • 默认值:false
  • 添加In:Hive 2.1.0 with HIVE-13029

ORC低级缓存是否应使用内存映射分配(直接I / O)

hive.llap.io .allocator.nmap.path

  • 默认值:/ tmp
  • 添加In:Hive 2.1.0 with  HIVE-13029

用于将NVDIMM / NVMe闪存存储映射到ORC低级缓存的目录位置。

LLAP CBO

hive.llap.auto.allow.uber

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-9777

是否允许计划程序在AM中运行顶点。

hive.llap.auto.enforce.tree

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-9635

在考虑顶点之前强制所有父母都处于困境中

hive.llap.auto.enforce.vectorized

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-9635

在考虑顶点之前,强制对输入进行矢量化

hive.llap.auto.enforce.stats

  • 默认值:true
  • 添加In:Hive 2.0.0 with HIVE-9635

在考虑顶点之前,强制使用列统计信息。

hive.llap.auto.max.input.size

  • 默认值:10 * 1024 * 1024 * 1024L
  • 添加In:Hive 2.0.0 with HIVE-9635

在考虑顶点之前检查输入大小(-1禁用检查)

hive.llap.auto.max.output.size

  • 默认值:1 * 1024 * 1024 * 1024L
  • 添加In:Hive 2.0.0 with HIVE-9635

在考虑顶点之前检查输出大小(-1禁用检查)

LLAP指标

hive.llap.queue.metrics.percentiles.intervals

  • 默认值:空白
  • 添加In:Hive 2.0.0 with ..

以逗号分隔的整数集,表示LLAP守护程序生产者 - 使用者队列上的百分等延迟度量标准所需的翻转间隔(以秒为单位)。

默认情况下,禁用百分位延迟指标。

hive .llap.management.rpc.port

  • 默认值: 15004
  • 添加于:2.0.0与HIVE-12341 

LLAP守护程序管理服务的RPC端口。

LLAP UDF安全性

基于白名单的UDF支持(HIVE-12852)。

hive.llap.allow.permanent.fns

LLAP决策程序是否应允许永久UDF。

hive.llap.daemon.download.permanent.fns

LLAP守护程序是否应该为永久UDF本地化资源。

LLAP安全

hive.llap.daemon.keytab.file

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with HIVE-12341

包含LLAP守护程序的服务主体的Kerberos Keytab文件的路径。

hive.llap.zk.sm.principal

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with HIVE-12341

用于与ZooKeeper for ZooKeeper SecretManager对话的主体名称。

hive.llap.zk.sm.keytab.file

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with HIVE-12341

Kerberos Keytab文件的路径,包含用于与ZooKeeper for ZooKeeper SecretManager对话的主体。

hive.llap.zk.sm.connectionString

  • 默认值:(空)
  • 添加In:Hive 2.0.0 with HIVE-12341

ZooKeeper SecretManager的ZooKeeper连接字符串。

hive.llap.daemon.acl

LLAP守护程序的ACL。

hive.llap.management.acl

LLAP守护程序管理的ACL。

hive.llap.daemon.delegation.token.lifetime

  • 默认值: 14d
  • 添加In:Hive 2.0.0 with HIVE-12341

LLAP委派令牌生存期,如果指定没有单位,则以秒为单位。

交易和压缩机

Hive 0.13.0(HIVE-5317及其子任务)中添加了具有行级ACID功能的Hive事务。有关详细信息,请参阅ACID和Hive中的事务

要打开Hive事务,请从默认值更改这些参数的值,如下所述:

这些参数还必须具有非默认值才能打开Hive事务:

交易

hive.txn.manager

  • 默认值: org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager
  • Hive交易价值: org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
  • 添加In:Hive 0.13.0 with  HIVE-5843

将此设置为org.apache.hadoop.hive.ql.lockmgr.DbTxnManager,作为打开Hive事务的一部分。 默认的DummyTxnManager复制pre-Hive-0.13行为并且不提供任何事务。

打开Hive事务还需要对hive.compactor.initiator.onhive.compactor.worker.threadshive.support.concurrencyhive.enforce.bucketing  (仅限Hive 0.x和1.x)以及hive进行适当的设置。.exec.dynamic.partition.mode

hive.txn.strict.locking.mode

  • 默认值: true
  • 添加In:Hive 2.2.0 with  HIVE-15774

在严格模式下,非ACID资源使用标准的R / W锁定语义,例如INSERT将获得独占锁定。在非严格模式下,对于非ACID资源,INSERT将仅获取共享锁,这允许对同一分区进行两次并发写入,但仍然允许锁管理器在写入表时阻止DROP TABLE等。只有苹果时 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager.

hive.txn.timeout

  • 默认值: 300
  • 添加In:Hive 0.13.0 with  HIVE-5843

如果客户端未在几秒钟内发送心跳,则声明事务被中止的时间。

hive.txn.heartbeat.threadpool.size

  • 默认值:5
  • 添加In:Hive 1.3.0和2.0.0与  HIVE-12366

用于心跳的线程数。对于Hive CLI,一个线程就足够了,但是HiveServer2需要一些线程。

hive.timedout.txn.reaper.start

  • 默认值: 100s
  • 添加于:Hive 1.3.0 with  HIVE-11317

在Metastore开始之后运行第一个收割机的时间延迟(中止超时交易的过程)。

hive.timedout.txn.reaper.interval

  • 默认值: 180s
  • 添加于:Hive 1.3.0 with  HIVE-11317

描述收割机(中止超时交易的过程)运行频率的时间间隔。

hive.writeset.reaper.interval

  • 默认值: 60s
  • 添加In:Hive 1.3.0和2.1.0 with  HIVE-13395

WriteSet收割机的运行频率。

hive.txn.max.open.batch

  • 默认值: 1000
  • 添加In:Hive 0.13.0 with  HIVE-5843

在一次调用open_txns()时可以获取的最大事务数。

这可以控制流媒体代理(如FlumeStorm)同时打开的事务数量。然后,流代理将该条目数写入单个文件(每个Flume代理或Storm bolt)。因此,增加此值会减少由流代理创建的增量文件的数量。但它也增加了Hive在任何给定时间必须跟踪的开放事务的数量,这可能会对读取性能产生负面影响。

hive.max.open.txns

  • 默认值: 100000
  • 添加In:Hive 1.3.0和2.1.0 with  HIVE-13249

最大打开交易数。如果当前未结交易达到此限制,将拒绝未来的未结交易请求,直到该数量低于限制。

hive.count.open.txns.interval

  • 默认值: 1s
  • 添加In:Hive 1.3.0和2.1.0 with  HIVE-13249

检查以计算未结交易的时间(秒)。

hive.txn.retryable.sqlex.regex

  • 默认值:(空)
  • 添加In:Hive 1.3.0和2.1.0与  HIVE-12637

逗号分隔的SQL状态,错误代码和可重试SQLExceptions的错误消息的正则表达式模式列表,适用于Hive Metastore数据库。

例如:无法序列化。*,40001 $,^死锁,。* ORA-08176。*

正则表达式将匹配的字符串具有以下形式,其中ex是SQLException:

ex.getMessage()+“(SQLState =”+ ex.getSQLState()+“,ErrorCode =”+ ex.getErrorCode()+“)”

压路机

hive.compactor.initiator.on

  • 默认值: false
  • Hive事务值:(仅  true 适用于Thrift Metastore服务的一个实例)
  • 添加In:Hive 0.13.0 with  HIVE-5843

是否在此Metastore实例上运行启动器和清除线程。在Thrift Metastore服务的一个实例上将此设置为true,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅hive.txn.manager

至关重要的是,在一个Metastore服务实例(尚未强制执行)上启用此功能。

hive.compactor.worker.threads

  • 默认值: 0
  • Hive Transactions Value:大于  0 Thrift Metastore服务的至少一个实例
  • 添加In:Hive 0.13.0 with  HIVE-5843

在此Metastore实例上运行多少个压缩工作线程。在Thrift Metastore服务的一个或多个实例上将此值设置为正数,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅  hive.txn.manager

工作线程产生MapReduce作业以进行压缩。他们自己不做压缩。增加工作线程数将减少确定需要压缩后压缩表或分区所需的时间。随着更多MapReduce作业将在后台运行,它还将增加Hadoop集群的后台负载。

hive.compactor.worker.timeout

  • 默认值: 86400
  • 添加In:Hive 0.13.0 with  HIVE-5843

将声明压缩作业失败并且压缩重新排队的时间(以秒为单位)。

hive.compactor.check.interval

  • 默认值: 300
  • 添加In:Hive 0.13.0 with  HIVE-5843

检查之间的时间(以秒为单位),以查看是否需要压缩任何表或分区。这应该保持很高,因为每次检查压缩都需要对NameNode进行多次调用。

减小此值将减少为需要压缩的表或分区启动压缩所需的时间。但是,检查是否需要压缩需要对自上次主要压缩以来已对其执行了事务的每个表或分区的NameNode进行多次调用。因此,降低此值将增加NameNode的负载。

hive.compactor.cleaner.run.interval

  • 默认值: 5000
  • 添加于:Hive 0.14与  HIVE-8258

清理线程运行之间的时间(以毫秒为单位)。增加此值将延长清理旧的,不再使用的数据版本以及降低Metastore服务器上的负载所需的时间。减小此值将缩短清理旧的,不再使用的数据版本并增加Metastore服务器上的负载所需的时间。

hive.compactor.delta.num.threshold

  • 默认值: 10
  • 添加In:Hive 0.13.0 with  HIVE-5843

表或分区中将触发次要压缩的增量目录数。

hive.compactor.delta.pct.threshold

  • 默认值: 0.1
  • 添加In:Hive 0.13.0 with  HIVE-5843

增量文件相对于将触发主要压缩的基数的百分比(小数)大小。(1.0 = 100%,因此默认值为0.1 = 10%。)

hive.compactor.abortedtxn.threshold

  • 默认值: 1000
  • 添加In:Hive 0.13.0 with  HIVE-5843

涉及将触发主要压缩的给定表或分区的中止事务的数量。

压缩历史

hive.compactor.history.retention.succeeded 

  • 默认值: 3
  • 添加In:Hive 1.3.0和2.0.0与HIVE-12353

要保留在历史记录中的成功压缩条目数(每个分区)。

hive.compactor.history.retention.failed

  • 默认值: 3
  • 添加In:Hive 1.3.0和2.0.0与HIVE-12353

要保留在历史记录中的失败压缩条目数(每个分区)。

hive.compactor.history.retention.attempted

  • 默认值: 2
  • 添加In:Hive 1.3.0和2.0.0与HIVE-12353

在历史记录中保留的尝试压缩条目数(每个分区)。

hive.compactor.history.reaper.interval

  • 默认值: 2m
  • 添加In:Hive 1.3.0和2.0.0与HIVE-12353

控制清除压缩历史记录的过程运行的频率。

hive.compactor.initiator.failed.compacts.threshold

  • 默认值: 2
  • 添加In:Hive 1.3.0和2.0.0与HIVE-12353

给定分区的连续失败压缩次数,之后Initiator将停止尝试自动计划压缩。仍然可以使用ALTER TABLE来启动压缩。一旦手动启动的压缩成功,自动启动的压缩将恢复。请注意,这必须小于hive.compactor.history.retention.failed

索引

使用HIVE-417在Hive 0.7.0 中添加索引,并在具有HIVE-1803的 Hive 0.8.0中添加位图索引。有关更多信息,请参阅索引

hive.index.compact.file.ignore.hdfs

  • 默认值: false
  • 添加于:Hive 0.7.0 with  HIVE-1889

当  true 运行时将忽略存储在索引文件中的HDFS位置。如果移动了数据或更改了集群的名称,则索引数据仍应可用。

hive.optimize.index.filter

  • 默认值: false
  • 添加In:Hive 0.8.0 with HIVE-1644

是否启用自动使用索引。

hive.optimize.index.filter.compact.minsize

  • 默认值: 5368709120
  • 添加In:Hive 0.8.0 with  HIVE-1644

自动使用紧凑索引的输入的最小大小(以字节为单位)。

hive.optimize.index.filter.compact.maxsize

  • 默认值: -1
  • 添加In:Hive 0.8.0 with  HIVE-1644

自动使用紧凑索引的输入的最大大小(以字节为单位)。负数相当于无穷大。

hive.index.compact.query.max.size

  • 默认值: 10737418240
  • 添加于:Hive 0.8.0与HIVE-2096

使用紧凑索引的查询可以读取的最大字节数。负值相当于无穷大。

hive.index.compact.query.max.entries

  • 默认值: 10000000
  • 添加于:Hive 0.8.0与  HIVE-2096

在使用紧凑索引的查询期间要读取的最大索引条目数。负值相当于无穷大。

hive.exec.concatenate.check.index

  • 默认值: true
  • 添加于:Hive 0.8.0 with HIVE-2125

如果设置为true,则在对其上具有索引的表/分区执行ALTER TABLE tbl_name [partSpec] CONCATENATE时,Hive将抛出错误。用户想要将其设置为true的原因是因为它可以帮助用户避免处理所有索引丢弃,重新创建和重建工作。这对具有数千个分区的表非常有用。

hive.optimize.index.autoupdate

  • 默认值: false
  • 添加于:Hive 0.8.0 with  HIVE-2354

是否在过期时自动重建索引。
注意:重建索引可能是一项耗时且计算量很大的操作; 在许多情况下,最好手动重建索引。

hive.optimize.index.groupby

  • 默认值: false
  • 添加于:Hive 0.8.1与  HIVE-1694

hive.index.compact.binary.search

  • 默认值: true
  • 添加于:Hive 0.8.1与  HIVE-2535

是否使用二进制搜索来查找索引表中与过滤器匹配的条目(如果可能)。

统计

在蜂巢统计有关如何收集和使用蜂巢表,分区和列的统计信息。

hive.stats.dbclass

  • 默认值:( jdbc:derbyHive 0.7至0.12)或fs (Hive 0.13及更高版本)
  • 添加于:Hive 0.7与HIVE-1361
  • 新值:  counter和  custom0.13加入HIVE-4632  ,并  fs在0.13添加了HIVE-6500

Hive 0.7到0.12:存储临时Hive统计信息的默认数据库。选项是jdbc:derby,  jdbc:mysqlhbaseStatsSetupConst.java中定义的。

Hive 0.13及更高版本:存储临时Hive统计信息的存储。在基于文件系统的统计信息收集(“ fs”)中,每个任务都会将它收集的统计信息写入文件系统上的文件中,该文件将在作业完成后进行聚合。支持的值是fs (文件系统),  (其中,可以是,等), ,  ,和 如在StatsSetupConst.java定义。jdbc:<database><database>derbymysqlhbasecountercustom

hive.stats.autogather

  • 默认值: true
  • 添加于:Hive 0.7与  HIVE-1361

此标志允许在Hive DML操作期间自动收集和更新统计信息。

不收集LOAD DATA报表的统计数据。

hive.stats.column.autogather

  • 默认值:( falseHive 2.1及更高版本2.x); trueHive 3.0  及更高版本)
  • 添加In:  Hive 2.1

扩展统计信息自动收集以收集列级统计信息。

hive.stats.jdbcdriver

  • 默认值: org.apache.derby.jdbc.EmbeddedDriver
  • 添加于:Hive 0.7与  HIVE-1361

存储临时Hive统计信息的数据库的JDBC驱动程序。

hive.stats.dbconnectionstring

  • 默认值: jdbc:derby:;databaseName=TempStatsStore;create=true
  • 添加于:Hive 0.7与  HIVE-1361

存储临时Hive统计信息的数据库的缺省连接字符串。

hive.stats.default.publisher

  • 默认值:(空)
  • 添加于:Hive 0.7与  HIVE-1923

默认情况下使用的Java类(实现StatsPublisher接口)如果hive.stats.dbclass  不是JDBC或HBase(Hive 0.12.0及更早版本),或者hive.stats.dbclass是自定义类型(Hive 0.13.0)后来:   HIVE-4632)。

hive.stats.default.aggregator

  • 默认值:(空)
  • 添加于:Hive 0.7与HIVE-1923

默认情况下使用的Java类(实现StatsAggregator接口)如果hive.stats.dbclass  不是JDBC或HBase(Hive 0.12.0及更早版本),或者hive.stats.dbclass  是自定义类型(Hive 0.13.0)后来:   HIVE-4632)。

hive.stats.jdbc.timeout

  • 默认值: 30
  • 添加于:Hive 0.7 with HIVE-1961

JDBC连接和语句使用的超时值(秒数)。

hive.stats.atomic

  • 默认值: false
  • 添加于:Hive 0.7 with  HIVE-1961

如果将此设置为true,则仅当所有类型的统计信息(行数,文件数,字节数等)可用时,才会更新Metastore统计信息。否则,尽可能以最佳方式更新Metastore统计数据。

hive.stats.retries.max

  • 默认值: 0
  • 添加于:Hive 0.8 with  HIVE-2127

统计信息发布者/聚合器获得更新中间数据库的异常时的最大重试次数。默认是没有尝试失败。

hive.stats.retries.wait

  • 默认值: 3000
  • 添加于:Hive 0.8 with HIVE-2127

下次重试之前的基本等待窗口(以毫秒为单位)。实际等待时间由baseWindow * failures + baseWindow *(失败+ 1)*(随机数在0.0,1.0之间)计算。

hive.stats.collect.rawdatasize

  • 默认值: true
  • 添加于:Hive 0.8 with  HIVE-2185

如果为true,则在分析表时收集原始数据大小。

hive.client.stats.publishers

以逗号分隔的统计信息发布者列表,在每个作业的计数器上调用。客户端统计信息发布者被指定为实现org.apache.hadoop.hive.ql.stats.ClientStatsPublisher接口的Java类的名称。

hive.client.stats.counters

hive.client.stats.publishers应该感兴趣的计数器子集(当人们想限制他们的发布时)。应使用非显示名称。

hive.stats.reliable

  • 默认值:false
  • 添加In:Hive 0.10.0与  HIVE-1653
  • 新行为在:Hive 0.13.0与  HIVE-3777

查询是否会失败,因为无法完全准确地收集统计信息。如果将此设置为true,则从/向分区或未分区表读取/写入可能会失败,因为无法准确计算统计信息。如果设置为false,则操作将成功。

在  Hive 0.13.0及更高版本中,如果hive.stats.reliable为false且无法正确计算统计信息,则操作仍可成功并更新统计信息,但会将分区属性“areStatsAccurate”设置为false。如果应用程序需要准确的统计信息,则可以在后台获取它们。

hive.stats.ndv.error

NDV估计允许的标准误差,以百分比表示。这提供了准确性和计算成本之间的折衷。较低的错误值表示更高的准确性和更高的计算成本。(NDV表示不同值的数量。)

hive.stats.collect.tablekeys

  • 默认值: false
  • 添加In:带有HIVE-3501的 Hive 0.10 

是否在QueryPlan中派生和维护表上的连接和按键分组。这有助于确定如何访问表并确定是否应该对表进行分段。

hive.stats.collect.scancols

  • 默认值: false
  • 添加于:Hive 0.11与  HIVE-3940

是否在QueryPlan中跟踪列访问。这对于确定如何访问表以及确定是否存在可以修剪的浪费列非常有用。

hive.stats.key.prefix.max.length

  • 默认值:(  200 Hive 0.11和0.12)或  150 (Hive 0.13及更高版本)
  • 添加In:带有HIVE-3750的 Hive 0.11 

确定当用于中间统计信息收集的密钥的前缀超过特定长度时,是否使用密钥的散列。如果值<0则从未使用哈希值,则如果值> = 0,则仅当键前缀的长度超过该值时才使用哈希。密钥前缀定义为密钥中任务ID之前的所有内容。对于计数器类型统计信息,它的最大值为mapreduce.job.counters.group.name.max,默认为128。

hive.stats.key.prefix.reserve.length

  • 默认值: 24
  • 添加于:Hive 0.13与  HIVE-6229

统计密钥后缀的保留长度。目前仅对计数器类型统计有意义,该统计应保持完整统计密钥的长度小于hive.stats.key.prefix.max.length配置的最大长度。对于计数器类型统计,它应该大于LB规范的长度(如果存在)。

hive.stats.max.variable.length

  • 默认值: 100
  • 添加于:Hive 0.13与  HIVE-5369

为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。在没有列统计信息的情况下,对于可变长度列(如字符串,字节等),将使用此值。对于固定长度列,使用相应的Java等效大小(float - 4个字节,double - 8个字节等)。

hive.analyze.stmt.collect.partlevel.stats

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-7609

在0.14之前,在分区表上,分析用于在未指定分区时收集表级统计信息的语句。该行为已从0.14开始改为收集所有分区的分区级别统计信息。如果需要收集聚合表级别统计信息的旧行为,请将此配置的值更改为false。这仅影响列统计信息。基本统计信息不受此配置的影响。

hive.stats.list.num.entries

  • 默认值: 10
  • 添加于:Hive 0.13与  HIVE-5369

为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。在没有列统计信息和列表等可变长度复杂列的情况下,可以使用此配置属性指定平均条目数/值。

hive.stats.map.num.entries

  • 默认值: 10
  • 添加于:Hive 0.13与  HIVE-5369

为了估计流经Hive / Tez中的运算符的数据的大小(用于减速器估计等),平均行大小乘以每个运算符的总行数。平均行大小是根据行中所有列的平均列大小计算的。如果没有列统计信息,并且对于像map这样的可变长度复杂列,可以使用此配置属性指定平均条目数/值。

hive.stats.map.parallelism

Hive / Tez优化器估计流经每个运营商的数据大小。对于GROUPBY运算符,要准确计算数据大小,需要知道映射侧并行性。默认情况下,此值设置为1,因为优化器在编译时不知道映射器的数量。此Hive配置属性可用于指定GROUPBY运算符的数据大小计算的映射器数。(此版本的配置属性已在版本0.14.0中删除。)

hive.stats.fetch.partition.stats

具有统计信息的运算符树的注释需要分区级基本统计信息,例如行数,数据大小和文件大小。分区统计信息是从Metastore中获取的。当分区数量很高时,获取每个所需分区的分区统计信息可能很昂贵。此标志可用于禁用从Metastore获取分区统计信息。禁用此标志后,Hive将调用文件系统以获取文件大小,并将估计行模式中的行数。

hive.stats.fetch.column.stats

  • 默认值: false
  • 添加In:Hive 0.13 with  HIVE-5898

具有统计信息的运算符树的注释需要列统计信息。从Metastore获取列统计信息。当列数很高时,获取每个所需列的列统计信息可能很昂贵。此标志可用于禁用从Metastore中获取列统计信息。

hive.stats.join.factor

  • 默认值: (float) 1.1
  • 添加In:Hive 0.13 with  HIVE-5921

Hive / Tez优化器估计流经每个运营商的数据大小。JOIN运算符使用列统计信息来估计流出的行数,从而估计数据大小。在没有列统计信息的情况下,此因子确定流出JOIN运算符的行数。

hive.stats.deserialization.factor

  • 默认值:
    • Hive 0.13到2.xx: (float) 1.0
    • Hive 3.0.0及更高版本: (float) 10.0
  • 添加In:Hive 0.13 with  HIVE-5921
  • Hive 3.0中,默认值从1.0更改为10.0

Hive / Tez优化器估计流经每个运营商的数据大小。在缺少行数和数据大小等基本统计信息的情况下,文件大小用于估计行数和数据大小。由于表/分区中的文件被序列化(并且可选地压缩),因此不能可靠地确定行数和数据大小的估计。此因子与文件大小相乘以考虑序列化和压缩。

hive.stats.avg.row.size

  • 默认值: 10000
  • 添加In:Hive 0.13 with  HIVE-5921

在没有表/分区统计信息的情况下,将使用平均行大小来估计行数/数据大小。

hive.compute.query.using.stats

  • 默认值: false
  • 添加In:Hive 0.13.0 with  HIVE-5483

当设置为true时,Hive将纯粹使用存储在Metastore中的统计信息来回答一些查询,如min,max和count(1)。对于基本统计信息收集,请将配置属性hive.stats.autogather设置为true。要获得更高级的统计信息收集,请运行ANALYZE TABLE查询。

hive.stats.gather.num.threads

  • 默认值: 10
  • 添加In:Hive 0.13.0 with  HIVE-6578

partialscan / noscan analyze命令用于分区表的线程数。这仅适用于实现StatsProvidingRecordReader接口(如ORC)的文件格式。

hive.stats.fetch.bitvector

  • 默认值: false
  • 添加In:Hive 3.0.0 with  HIVE-16997

Hive是否在计算不同值的数量(ndv)时获取bitvector。如果要在没有位向量的情况下使用旧架构,请将其设置为false。

运行时过滤

hive.tez.dynamic.semijoin.reduction

  • 默认值:true
  • 添加In:Hive 2.2 with HIVE-15269

hive.tez.min.bloom.filter.entries

  • 默认值:1000000
  • 添加于:Hive 2.3 with HIVE-16260

hive.tez.max.bloom.filter.entries

  • 默认值:100000000
  • 添加In:Hive 2.2 with HIVE-15269

hive.tez.bloom.filter.factor

  • 默认值:2.0
  • 添加于:Hive 2.3 with HIVE-16260

hive.tez.bigtable.minsize.semijoin.reduction

  • 默认值:1000000
  • 添加于:Hive 2.3 with HIVE-16260

 

身份验证和授权

有关授权模式的概述,请参阅Hive授权

限制/隐藏/内部列表和白名单

hive.conf.restricted.list

  • 默认值: 
    • Hive 0.11.0 :(为空,但隐含地包含此列表)
    • Hive 0.13.0:hive.security.authenticator.manager, hive.security.authorization.managerHIVE-5953
    • Hive 0.14.0:hive.security.authenticator.manager, hive.security.authorization.manager, hive.users.in.admin.roleHIVE-6437
    • Hive 2.1.0:hive.security.authenticator.manager, hive.security.authorization.manager, hive.users.in.admin.role, hive.server2.xsrf.filter.enabledHIVE-13853
    • Hive 2.2.0:hive.security.authenticator.manager, hive.security.authorization.manager, hive.security.metastore.authorization.manager,hive.security.metastore.authenticator.manager, hive.users.in.admin.role, hive.server2.xsrf.filter.enabled, hive.security.authorization.enabledHIVE-14099),  hive.server2.authentication.ldap.baseDN (HIVE-15713),hive.server2.authentication.ldap.urlHIVE-15713),hive.server2.authentication.ldap.DomainHIVE-15713),hive.server2.authentication.ldap.groupDNPatternHIVE-15713),hive.server2.authentication.ldap.groupFilterHIVE-15713),hive.server2.authentication.ldap.userDNPatternHIVE-15713),hive.server2.authentication.ldap.userFilterHIVE- 15713),hive.server2.authentication.ldap.groupMembershipKeyHIVE-15713),hive.server2.authentication.ldap.userMembershipKeyHIVE-15713),hive.server2.authentication.ldap.groupClassKeyHIVE-15713),hive.server2.authentication.ldap.customLDAPQueryHIVE-15713
    • Hive 3.0.0:以上所有,加上: hive.spark.client.connect.timeout  (HIVE-16876),  hive.spark.client.server.connect.timeout (HIVE-16876),  hive.spark.client.channel.log.level (HIVE-16876),  hive.spark.client.rpc.max.size (HIVE-16876),  hive.spark.client.rpc.threads (HIVE-16876),  hive.spark.client.secret.bits (HIVE-16876),  hive.spark.client.rpc.server.address (HIVE-16876), hive.spark.client.rpc.server.port (HIVE-16876), hikari.* (HIVE-17318), dbcp.* (HIVE-17319),hadoop.bin.path(HIVE-18248),yarn.bin.path(HIVE-18248
  • 添加In:Hive 0.11.0与  HIVE-2935

以逗号分隔的配置属性列表,这些属性在运行时是不可变的。例如,如果hive.security.authorization.enabled设置为true,则应将其包含在此列表中,以防止客户端在运行时将其更改为false。

hive.conf.hidden.list

  • 默认值: 
    • Hive 1.2.2: javax.jdo.option.ConnectionPassword,hive.server2.keystore.password (HIVE-9013
    • Hive 2.3.0:fs.s3.awsAccessKeyId,fs.s3.awsSecretKccessIey,fs.s3n.awsAccessKeyId,fs.s3n.awsSecretAccessKey,fs.s3a.access.key,fs.s3a.secret.key,fs.s3a.proxy .password(HIVE-14588
    • Hive 3.0.0: dfs.adls.oauth2.credential,fs.adl.oauth2.credential (HIVE-18228

逗号分隔的配置选项列表,普通用户不应读取,例如密码。

hive.conf.internal.variable.list

  • 默认值: hive.added.files.path,hive.added.jars.path,hive.added.archives.path
  • 添加In:Hive 1.3.0 with  HIVE-12346

逗号分隔的配置选项列表,这些选项在内部使用,不应通过set命令设置。

hive.security.command.whitelist

  • 默认值: set,reset,dfs,add,delete,compile[,list,reload]
  • 添加In:Hive 0.13.0与  HIVE-5400  和HIVE-5252
  • 更改了Hive 0.14.0以包含“列表”和“重新加载”与  HIVE-7592  (“列表”)和HIVE-7553(“重新加载”)

逗号分隔的用户有权执行的非SQL Hive命令列表。这可用于限制授权命令集。支持的命令列表是Hive 0.13.0中的“set,reset,dfs,add,delete,compile”或者从Hive 0.14.0开始的“set,reset,dfs,add,list,delete,reload,compile”,默认情况下所有这些命令都是授权的。要限制任何这些命令,请将hive.security.command.whitelist设置为其中没有命令的值。

基于SQL标准的Hive授权的白名单

有关在基于SQL标准的授权中授权set命令的白名单属性的信息,请参阅  下面的hive.security.authorization.sqlstd.confwhitelist

Hive Client Security

hive.security.authorization.enabled

  • 默认值: false
  • 添加In:Hive 0.7.0

启用或禁用Hive客户端授权。

hive.security.authorization.manager

  • 默认值: org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider
  • 添加In:Hive 0.7.0

Hive客户端授权管理器类名。用户定义的授权类应该实现接口org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider。

hive.security.authenticator.manager

  • 默认值: org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator
  • 添加In:Hive 0.7.0

Hive客户端身份验证器管理器类名称。用户定义的身份验证器应该实现org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider接口。

hive.security.authorization.createtable.user.grants

  • 默认值:(空)
  • 添加In:Hive 0.7.0

每当创建表时,都会自动授予某些用户权限。像“userX,userY:select; userZ:create”这样的示例将向userX和userY授予select权限,并在创建新表时向userZ授予create privilege。

hive.security.authorization.createtable.group.grants

  • 默认值:(空)
  • 添加In:Hive 0.7.0

每当创建表时,都会自动授予某些组的权限。像“groupX,groupY:select; groupZ:create”这样的示例将为groupX和groupY授予select权限,并在创建新表时为groupZ授予create privilege。

hive.security.authorization.createtable.role.grants

  • 默认值:(空)
  • 添加In:Hive 0.7.0

每当创建表时,都会自动为某些角色授予权限。像“roleX,roleY:select; roleZ:create”这样的示例将为roleX和roleY授予select权限,并在创建新表时向roleZ授予create privilege。

hive.security.authorization.createtable.owner.grants

  • 默认值:(空)
  • 添加In:Hive 0.7.0

每当创建表时,都会自动授予所有者权限。像“select,drop”这样的例子会将select和drop特权授予表的所有者。请注意,默认情况下,表的创建者无权访问该表。

Hive Metastore Security

在Hive 0.10.0(HIVE-3705)中添加了Metastore端安全性。有关详细信息,请参阅授权中概述  和Metastore Server中基于存储的授权的详细信息  。

有关一般Metastore配置属性,请参阅MetaStore

hive.metastore.pre.event.listeners

  • 默认值:(空)
  • 添加In:Hive 0.9.0 with HIVE-2853

每当创建,更改或删除数据库,表和分区时,要在Metastore端加载事件前监听器类以运行代码。将此配置属性设置为  org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener hive-site.xml以打开Hive Metastore端安全性。

hive.security.metastore.authorization.manager

  • 默认值: org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider
  • 添加In:Hive 0.10.0 with  HIVE-3705 ; 使用HIVE-7209在Hive 0.14.0中进行了修订

Hive 0.13及更早版本:  要在Metastore中用于授权的授权管理器类名。用户定义的授权类应该实现接口org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider

Hive 0.14及更高版本:要在Metastore中用于授权的授权管理器类(以逗号分隔)的名称。 用户定义的授权类应实现org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider接口。 所有授权管理器类都必须成功授权Metastore API调用才能允许执行命令。  

DefaultHiveMetastoreAuthorizationProvider实现标准Hive授予/撤销模型。还提供了基于存储的授权实现,以用作此配置属性的值:

  • org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider

它使用HDFS权限来提供授权,而不是使用Hive样式的基于授权的授权。

hive.security.metastore.authenticator.manager

  • 默认值: org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
  • 添加In:Hive 0.10.0 with  HIVE-3705

要在Metastore中用于身份验证的身份验证器管理器类名称。用户定义的验证器类应该实现接口org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider

hive.security.metastore.authorization.auth.reads

  • 默认值: true
  • 添加In:Hive 0.14.0 with  HIVE-8221

如果是这样,则Metastore授权程序授权对数据库和表执行读取操作。请参阅基于存储的授权

hive.metastore.token.signature

  • 默认值:“”(空字符串)
  • 在Hive 0.7.0中添加,添加到Hive 2.1.0中的HiveConf

从当前用户的令牌中选择令牌时要匹配的委托令牌服务名称。

基于SQL标准的授权

Hive 0.13.0引入了基于SQL标准授权模型的细粒度授权。有关功能规范和子任务列表,请参阅HIVE-5837

hive.users.in.admin.role

  • 默认值:(空)
  • 添加In:Hive 0.13.0 with HIVE-5959

以逗号分隔的用户列表,将在Metastore启动时添加到ADMIN角色。以后仍可以添加更多用户。

hive.security.authorization.sqlstd.confwhitelist

  • 默认值:(空,但包含隐含的下面列表)
  • 添加In:Hive 0.13.0 with  HIVE-6846 ; 使用HIVE-8534在Hive 0.14.0中更新, 并在随后的版本中更新了几个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。 threshold,hive.map.aggr.hash.min.reduction,hive.groupby.skewindata,hive.optimize.multigroupby.common.distincts,hive.optimize.index.groupby,hive.optimize.ppd,hive.optimize.ppd。 storage,hive.ppd.recognizetransivity,hive.optimize.groupby,hive.optimize.sort.dynamic.partition,hive.optimize.union.remove,hive.multigroupby.singlereducer,hive.map.groupby.sorted,hive.map。 groupby.sorted.testmode,hive.optimize.skewjoin,hive.optimize.skewjoin.compiletime,hive.mapred.mode,hive.enforce.bucketmapjoin,hive.exec.compress.output,hive.exec.compress.intermediate,hive。 exec.parallel,hive.exec.parallel.thread.number,hive.exec.rowoffset,hive.merge.mapfiles,hive.merge.mapredfiles,hive.merge.tezfiles,hive.ignore.mapjoin.hint,hive.auto.convert.join,hive.auto.convert.join.noconditionaltask,hive.auto.convert.join.noconditionaltask.size,hive.auto.convert.join.use.nonstaged, hive.enforce.bucketing,hive.enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys, hive.mapjoin.lazy.hashtable,hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output。 compression.codec,mapreduce.job.reduce.slowstart.completedmaps,mapreduce.job.queuename。enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys,hive.mapjoin.lazy.hashtable, hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output.compression.codec,mapreduce.job。 reduce.slowstart.completedmaps,mapreduce.job.queuename。enforce.sorting,hive.enforce.sortmergebucketmapjoin,hive.auto.convert.sortmerge.join,hive.execution.engine,hive.vectorized.execution.enabled,hive.mapjoin.optimized.keys,hive.mapjoin.lazy.hashtable, hive.exec.check.crossproducts,hive.compat,hive.exec.dynamic.partition.mode,mapred.reduce.tasks,mapred.output.compression.codec,mapred.map.output.compression.codec,mapreduce.job。 reduce.slowstart.completedmaps,mapreduce.job.queuename。mapreduce.job.queuename。mapreduce.job.queuename。

版本信息

Hive 0.14.0将新参数添加到默认白名单(请参阅  HIVE-8534)。

Hive 1.1.0删除了一些参数(参见HIVE-9331)。

Hive 1.2.0和1.2.1添加了更多新参数(参见HIVE-10578,  HIVE-10678HIVE-10967)。

Hive 1.3.0,2.1.1和2.2.0增加了更多新参数(参见HIVE-14073)。

Hive 3.0.0修复了1.2.1中添加的参数,将mapred.job.queuename更改为mapred.job.queue.name(请参阅HIVE-17584)。

当它们匹配正则表达式规格的白名单中HiveConf.java之一某些参数将自动添加(例如,hive.log.trace.id在蜂巢2.0.0  -  见HIVE-12419 )。

请注意,在白名单检查后仍会强制执行hive.conf.restricted.list检查。

hive.security.authorization.sqlstd.confwhitelist.append

  • 默认值:(空)
  • 添加In:带有HIVE-8534的 Hive  0.14.0 

除了hive.security.authorization.sqlstd.confwhitelist之外,配置属性的白名单将匹配的第二个Java正则表达式。不要|在值中包含起始值。

使用此正则表达式而不是更新hive.security.authorization.sqlstd.confwhitelist的原始正则表达式  意味着您可以附加到由SQL标准授权设置的默认值而不是完全替换它。

hive.server2.builtin.udf.whitelist

  • 默认值:(为空,视为未设置 - 允许所有UDF)
  • 添加In:Hive 1.1.0 with HIVE-8893    

以逗号分隔的允许执行的内置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
  • 添加In:Hive 1.1.0 with  HIVE-8611  

要覆盖默认授权DDL处理,请将hive.security.authorization.task.factory设置为实现org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactory接口的类。

存档

有关Hadoop归档的 Hive支持的一般信息,请参阅归档以减少文件数

fs.har.impl

  • 默认值: org.apache.hadoop.hive.shims.HiveHarFileSystem
  • 添加In:Hive 0.8.1

访问Hadoop Archives的实现。请注意,这不适用于小于0.20的Hadoop版本。

hive.archive.enabled

  • 默认值: false
  • 添加In:Hive 0.6.0

是否允许归档操作。

hive.archive.har.parentdir.settable

  • 默认值: false
  • 添加In:Hive 0.6.0
  • 删除:Hive 0.10.0与HIVE-3338

在新的Hadoop版本中,必须在创建HAR时设置父目录。由于仅使用版本号很难检测到此功能,因此需要在Hive版本0.6.0到0.9.0中手动设置此配置变量。(此版本的配置属性已在版本0.10.0中删除。)

锁定

有关锁定的一般信息,请参阅Hive Concurrency Model

hive.support.concurrency

  • 默认值: false
  • 添加In:Hive 0.7.0 with HIVE-1293

Hive是否支持并发。一个ZooKeeper的实例必须启动并运行了默认配置单元锁管理器,支持读写锁。

设置为  true 支持  INSERT ... VALUES,UPDATE和DELETE  事务(Hive 0.14.0及更高版本)。有关打开Hive事务所需参数的完整列表,请参阅  hive.txn.manager

hive.lock.manager

  • 默认值: org.apache.hadoop.hive.ql.lockmgr.zookeeper.ZooKeeperHiveLockManager
  • 添加In:Hive 0.7.0 with  HIVE-1293

hive.support.concurrency设置为时使用的锁管理器true

hive.lock.mapred.only.operation

  • 默认值: false
  • 添加In:Hive 0.8.0

此配置属性用于控制是否仅锁定需要执行至少一个mapred作业的查询。

hive.lock.query.string.max.length

  • 默认值:  1000000
  • 添加In:Hive 3.0.0

要存储在锁中的查询字符串的最大长度。默认值为1000000,因为znode的数据限制为1MB

hive.lock.numretries

  • 默认值: 100
  • 添加In:Hive 0.7.0 with  HIVE-1293

您想要尝试获取所有锁的总次数。

hive.unlock.numretries

  • 默认值: 10
  • 添加In:Hive 0.8.1

您要解锁的总次数。

hive.lock.sleep.between.retries

  • 默认值: 60
  • 添加In:Hive 0.7.0 with  HIVE-1293

各种重试之间的休眠时间(以秒为单位)。

hive.zookeeper.quorum

  • 默认值:(空)
  • 添加In:Hive 0.7.0 with  HIVE-1293

要与之交谈的ZooKeeper服务器列表。只有读/写锁才需要这样做。

hive.zookeeper.client.port

  • 默认值:
    • Hive 0.7.0 :(空)
    • Hive 0.8.0及更高版本:   2181 (HIVE-2196
  • 添加In:Hive 0.7.0 with  HIVE-1293

要与之交谈的ZooKeeper服务器端口。只有读/写锁才需要这样做。

hive.zookeeper.session.timeout

  • 默认值:
    • Hive 0.7.0到1.1.x: 600000ms
    • Hive 1.2.0及更高版本: 1200000msHIVE-8890
  • 添加In:Hive 0.7.0 with  HIVE-1293

ZooKeeper客户端的会话超时(以毫秒为单位)。客户端断开连接,因此,如果超时中未发送心跳,则释放所有锁定。

hive.zookeeper.namespace

  • 默认值: hive_zookeeper_namespace
  • 添加In:Hive 0.7.0

创建所有ZooKeeper节点的父节点。

hive.zookeeper.clean.extra.nodes

  • 默认值: false
  • 添加In:Hive 0.7.0

在会话结束时清理额外的节点。

hive.lockmgr.zookeeper.default.partition.name

  • 默认值: __HIVE_DEFAULT_ZOOKEEPER_PARTITION__
  • 添加In:Hive 0.7.0 with  HIVE-1293

ZooKeeperHiveLockManager是配置单元锁定管理器时的默认分区名称  。

度量

可以在HiveServer2 Web UI中查看Hive收集的度量标准。有关更多信息,请参阅Hive Metrics

hive.metastore.metrics.enabled

  • 默认值: false
  • 添加于:Hive 1.3.0和2.0.0与HIVE-10761

在Hive Metastore服务上启用指标。(有关其他Metastore配置属性,请参阅MetastoreHive Metastore Security部分。)

hive.server2.metrics.enabled

  • 默认值: false
  • 添加于:Hive 1.3.0和2.0.0与  HIVE-10761

在HiveServer2上启用指标。(有关其他HiveServer2配置属性,请参阅HiveServer2部分。)

hive.service.metrics.class

  • 默认值:  org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics
  • 添加于:Hive 1.3.0和2.0.0与  HIVE-10761

Hive metrics子系统实现类。“org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics”是新的实现。要在Hive 1.3和2.0之前恢复旧实现以及其内置的JMX报告功能,请选择“org.apache.hadoop.hive.common.metrics.LegacyMetrics”。

hive.service.metrics.reporter

  • 默认值:“ JSON_FILE, JMX
  • 添加于:Hive 1.3.0和2.0.0与  HIVE-10761
  • 不推荐使用:Hive 3.0.0 with  HIVE-16206

度量标准类org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics的报告者类型,以逗号分隔的值列表JMX,CONSOLE,JSON_FILE。

在Hive 2.1.0中添加了新的报告型HADOOP2和  HIVE-13480

hive.service.metrics.codahale.reporter.classes

  • 默认值:“org.apache.hadoop.hive.common.metrics.metrics2.JsonFileMetricsReporter,org.apache.hadoop.hive.common.metrics.metrics2.JmxMetricsReporter”
  • 添加于:Hive 3.0.0 with  HIVE-16206

逗号分隔的度量标准类org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics的记者实现类列表。覆盖hive.service.metrics.reporter conf(如果存在)。

hive.service.metrics.file.location

  • 默认值:“ /tmp/report.json
  • 添加于:Hive 1.3.0和2.0.0与  HIVE-10761

对于hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和hive.service.metrics.reporter JSON_FILE,这是本地JSON指标文件转储的位置。此文件将在hive.service.metrics.file.frequency的每个时间间隔被覆盖。

hive.service.metrics.file.frequency

  • 默认值:5秒
  • 添加于:Hive 1.3.0和2.0.0与  HIVE-10761

对于hive.service.metrics.class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和hive.service.metrics.reporter JSON_FILE,这是更新JSON指标文件的频率。

hive.service.metrics.hadoop2.component

  • 默认值:“ hive
  • 添加于:Hive 2.1.0 with  HIVE-13480

对于  hive.service.metrics.class  org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和  hive.service.metrics.reporter  HADOOP2,这是提供给HADOOP2指标系统的组件名称。理想情况下,MetaStore的“hivemetastore”和HiveServer2的“hiveserver2”。度量标准将在hive.service.metrics.hadoop2.frequency的每个时间间隔更新  。

hive.service.metrics.hadoop2.frequency

  • 默认值:30秒
  • 添加于:Hive 2.1.0 with  HIVE-13480

对于  hive.service.metrics.class  org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics和  hive.service.metrics.reporter  HADOOP2,这是更新HADOOP2指标系统的频率。

聚类

hive.cluster.delegation.token.store.class

  • 默认值: org.apache.hadoop.hive.thrift.MemoryTokenStore
  • 添加In:Hive 0.9.0

委托令牌存储实现。设置为负载平衡群集的org.apache.hadoop.hive.thrift.ZooKeeperTokenStore。

hive.cluster.delegation.token.store.zookeeper.connectString

  • 默认值: localhost:2181
  • 添加In:Hive 0.9.0

ZooKeeper令牌存储连接字符串。

hive.cluster.delegation.token.store.zookeeper.znode

  • 默认值: /hive/cluster/delegation
  • 添加In:Hive 0.9.0

令牌存储数据的根路径。

hive.cluster.delegation.token.store.zookeeper.acl

  • 默认值: sasl:hive/host1@EXAMPLE.COM:cdrwa,sasl:hive/host2@EXAMPLE.COM:cdrwa
  • 添加In:Hive 0.9.0

令牌存储条目的ACL。列表逗号分隔了群集的所有服务器主体。

地区

在Hive 0.9.0中被HIVE-2612还原

在Hive版本0.9.0之前,本节中曾经记录的配置属性(hive.use.input.primary.region,hive.default.region.name和hive.region.properties)暂时存在于主干中,但它们是在发布之前删除。见HIVE-2612HIVE-2965

对由于之前包含在本文档中引起的任何混淆表示道歉。

命令行界面

hive.cli.print.header

  • 默认值: false
  • 添加In:Hive 0.7.0

是否在查询输出中打印列的名称。

hive.cli.print.current.db

  • 默认值: false
  • 添加In:Hive 0.8.1

是否在Hive提示符中包含当前数据库。

HBase StorageHandler

hive.hbase.wal.enabled

  • 默认值: true
  • 添加In:Hive 0.6.0 with  HIVE-1383

是否应该强制写入HBase写入预写日志。禁用此功能可提高HBase写入性能,但有可能在发生崩溃时丢失写入。

hive.hbase.generatehfiles

当HBaseStorageHandler生成hfiles而不是对联机表进行操作时为True。

Hive Web Interface(HWI)(从Hive 2.2.0开始删除组件)

hive.hwi.war.file

  • 默认值: lib/hive-hwi-<version>.war
  • 添加In:Hive 0.3.0默认lib/hive_hwi.war,默认更改为lib/hive-hwi-<version>.war Hive 0.5(HIVE-978和  HIVE-1183
  • 删除:Hive 2.2.0与HIVE-15622

这将设置HWI war文件的路径,相对于${HIVE_HOME}。(在2.2.0版中删除了此配置属性。)

hive.hwi.listen.host

  • 默认值: 0.0.0.0
  • 添加In:Hive 0.3.0
  • 删除:Hive 2.2.0与  HIVE-15622

这是Hive Web界面将侦听的主机地址。(在2.2.0版中删除了此配置属性。)

hive.hwi.listen.port

  • 默认值: 9999
  • 添加In:Hive 0.3.0
  • 删除:Hive 2.2.0与  HIVE-15622

这是Hive Web界面将侦听的端口。(在2.2.0版中删除了此配置属性。)

复制

hive.repl.rootdir

  • 默认值: /usr/hive/repl/
  • 添加于:Hive 2.2.0 with  HIVE-15151

这是一个HDFS根目录,Hive的REPL DUMP命令将在该目录下运行,创建转储以复制到其他仓库。 

hive.repl.replica.functions.root.dir

  • 默认值: /usr/hive/repl/functions
  • 添加于:Hive 3.0.0 with  HIVE-16 591

副本仓库中的根目录,其中repl子系统将存储来自主仓库的jar。

hive.repl.partitions.dump.parallelism

REPL DUMP期间用于转储分区数据信息的线程数。

hive.repl.approx.max.load.tasks

  • 默认值:10000
  • 添加于:Hive 3.0.0 with  HIVE-16896

提供动态生成下一组任务之前应执行的最大任务的近似值。该数字是近似值,因为Hive将停在稍高的数字,原因是某些事件可能导致任务增量超过指定的限制。

hive.repl.dump.metadata.only

  • 默认值: false
  • 添加于:Hive 3.0.0 with  HIVE-18352

指示REPL DUMP命令是仅转储元数据信息(true)还是数据+元数据(false)。

hive.repl.dump.include.acid.tables

  • 默认值: false
  • 添加于:Hive 3.0.0 with  HIVE-18352

指示复制转储是否应包含有关ACID表的信息。它应与hive.repl.dump.metadata.only结合使用 ,以便为ACID表复制元数据,这些表不需要在目标上应用相应的事务语义。支持ACID表复制时,可以将其删除。

hive.repl.add.raw.reserved.namespace

  • 默认值: false
  • 添加于:Hive 3.0.0 with  HIVE-18341

对于源和目标上具有相同加密密钥的TDE,允许Distcp超级用户从文件系统访问  原始字节,而无需在源上解密,然后在目标上加密。

Blobstore(即亚马逊S3)

从2.2.0版开始,添加了一组配置,以便在处理存储在blobstore系统(如Amazon S3)上的表时实现读/写性能改进。

hive.blobstore.supported.schemes

  • 默认值: s3,s3a,s3n
  • 添加In:Hive 2.2.0 with HIVE-14270

Hive用于应用特殊读/写性能改进的受支持blobstore方案列表。

hive.blobstore.optimizations.enabled

  • 默认值: true
  • 添加于:Hive 2.2.0 with  HIVE-15121

此参数是一个全局变量,在blob存储上运行时可以进行大量优化。如果此变量设置为false,则不会使用
某些优化,例如hive.blobstore.use.blobstore.as.scratchdir

hive.blobstore.use.blobstore.as.scratchdir

  • 默认值: false
  • 添加In:Hive 2.2.0 with HIVE-14270

将此设置为true可以直接在blob存储系统上使用暂存目录(这可能会导致性能下降)。

hive.exec.input.listing.max.threads

  • 默认值:(已0禁用)
  • 添加In:Hive 2.2.0 with HIVE-15881

将此值设置为Hive将用于列出文件系统中的文件信息的最大线程数,例如文件大小和每个表的文件数(对于blobstore,建议> 1)。

测试属性

注意:这是开发人员在运行Hive测试时使用的配置属性的不完整列表。对于其他测试属性,请搜索“hive.test”。在  hive-default.xml.template或HiveConf.java中。另请参阅Beeline查询单元测试

hive.test.mode

  • 默认值: false
  • 添加In:Hive 0.4.0

Hive是否在测试模式下运行。如果是,则打开采样并为输出表名添加前缀。

hive.test.mode.prefix

  • 默认值: test_
  • 添加In:Hive 0.4.0

如果Hive在测试模式下运行,则以此字符串为输出表作为前缀。

hive.test.mode.samplefreq

  • 默认值: 32
  • 添加In:Hive 0.4.0

如果Hive在测试模式下运行且表没有被删除,则采样频率。

hive.test.mode.nosamplelist

  • 默认值:(空)
  • 添加In:Hive 0.4.0

如果Hive在测试模式下运行,请不要对上面以逗号分隔的表列表进行采样。

hive.exec.submit.local.task.via.child

  • 默认值: true
  • 添加In:Hive 0.14.0 with HIVE-7271

确定本地任务(通常是mapjoin哈希表生成阶段)是否在单独的JVM(true推荐)中运行。避免产生新JVM的开销,但可能导致内存不足问题。 一个false运行时环境是唯一有用的单元测试。有关 详细信息,请参阅HIVE-7271

HCatalog配置属性

从Hive版本0.11.0开始,HCatalog已安装并配置了Hive。HCatalog服务器与Hive Metastore相同。有关Metastore配置属性,请参阅Hive Metastore Administration。对于0.11.0之前的Hive版本,请参阅HCatalog 0.5.0文档“ 从Tarball安装”中的“Thrift Server Setup”部分,以获取有关设置Hive Metastore配置属性的信息。

提交给HCatalog的作业可以指定影响存储,容错和作业期间其他类型行为的配置属性。有关详细信息,请参阅HCatalog配置属性

WebHCat配置属性

有关WebHCat配置,请参阅WebHCat手册中的配置变量

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值