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