Hive配置文件Hive-site.xml参数说明用途

本文详细介绍了Hive配置文件hive-site.xml中众多参数的说明、示例及具体用途,包括Hive元数据存储、数据仓库目录、连接操作、日志记录等方面的参数,还涉及Spark相关参数,可按需修改配置以满足Hive和Spark环境要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive配置文件hive-site.xml中参数说明和用法

参数说明

参数名称默认值用法
hive.metastore.uris-Hive元数据存储的URI。
hive.metastore.client.socket.timeout600Hive元数据客户端套接字超时时间。
hive.metastore.warehouse.dir/user/hive/warehouseHive数据仓库目录。
hive.warehouse.subdir.inherit.permstrue子目录是否继承权限。
hive.auto.convert.jointrue自动转换连接类型的Join操作。
hive.auto.convert.join.noconditionaltask.size10000000自动转换连接类型的Join操作时条件不满足的最大数据量。
hive.optimize.bucketmapjoin.sortedmergefalse是否优化Bucket Map Join的Sorted Merge。
hive.smbjoin.cache.rows10000SMB Join操作缓存的行数。
hive.server2.logging.operation.enabledfalse是否启用Hive Server2日志记录操作。
hive.server2.logging.operation.log.location${system:java.io.tmpdir}/ ${system:user.name} /operation_logsHive Server2操作日志的存储位置。
mapred.reduce.tasks-MapReduce作业的Reduce任务数。
hive.exec.reducers.bytes.per.reducer67108864每个Reduce任务的数据量。
hive.exec.copyfile.maxsize33554432最大允许复制文件的大小。
hive.exec.reducers.max-1同时运行的最大Reduce任务数。
hive.vectorized.groupby.checkinterval100000Vectorized Group By操作的检查间隔。
hive.vectorized.groupby.flush.percent0.1Vectorized Group By操作的Flush比例。
hive.compute.query.using.statstrue是否使用统计信息来优化查询计划。
hive.vectorized.execution.enabledfalse是否启用向量化执行引擎。
hive.vectorized.execution.reduce.enabledfalse是否在Reduce阶段启用向量化执行。
hive.vectorized.use.vectorized.input.formatfalse是否使用向量化输入格式。
hive.vectorized.use.checked.expressionsfalse是否使用检查表达式的向量化执行。
hive.vectorized.use.vector.serde.deserializefalse是否使用向量化序列化和反序列化。
hive.vectorized.adaptor.usage.modeoff向量化适配器的使用模式。
hive.vectorized.input.format.excludes-排除的向量化输入格式列表。
hive.merge.mapfilestrue是否合并Map输出的小文件。
hive.merge.mapredfilesfalse是否合并MapReduce输出的小文件。
hive.cbo.enablefalse是否启用CBO优化。
hive.fetch.task.conversionnoneFetch任务转换级别。
hive.fetch.task.conversion.threshold-1触发Fetch任务转换的数据量阈值。
hive.limit.pushdown.memory.usage0.1Limit操作的内存使用百分比。
hive.merge.sparkfilesfalse是否合并Spark任务输出的小文件。
hive.merge.smallfiles.avgsize-1合并小文件时的平均大小。
hive.merge.size.per.task-1每个任务合并的数据量。
hive.optimize.reducededuplicationtrue是否启用重复消除优化。
hive.optimize.reducededuplication.min.reducer4最小Reduce任务数以启用重复消除优化。
hive.map.aggrfalse是否启用Map端聚合。
hive.map.aggr.hash.percentmemory0.5Map端聚合的哈希表内存比例。
hive.optimize.sort.dynamic.partitionfalse是否优化动态分区排序。
hive.execution.enginemrHive执行引擎类型。
spark.executor.memory1gSpark Executor的内存大小。
spark.driver.memory1gSpark Driver的内存大小。
spark.executor.cores1每个Spark Executor的核心数。
spark.yarn.driver.memoryOverhead384Spark Driver的内存Overhead。
spark.yarn.executor.memoryOverhead384Spark Executor的内存Overhead。
spark.dynamicAllocation.enabledfalse是否启用动态资源分配。
spark.dynamicAllocation.initialExecutors-1动态资源分配的初始Executor数量。
spark.dynamicAllocation.minExecutors-1动态资源分配的最小Executor数量。
spark.dynamicAllocation.maxExecutors-1动态资源分配的最大Executor数量。
hive.metastore.execute.setugifalse是否在Hive元数据存储中执行setugi操作。
hive.support.concurrencytrue是否支持并发操作。
hive.zookeeper.quorum-ZooKeeper服务器列表。
hive.zookeeper.client.port-ZooKeeper客户端端口号。
hive.zookeeper.namespacedefaultHive使用的ZooKeeper命名空间。
hive.cluster.delegation.token.store.classorg.apache.hadoop.hive .thrift.MemoryTokenStore集群委派令牌存储类。
hive.server2.enable.doAsfalse是否启用Hive Server2用户代理模式。
hive.metastore.sasl.enabledfalse是否启用Hive元数据存储的SASL认证。
hive.server2.authenticationNONEHive Server2的认证方式。
hive.metastore.kerberos.principal-Hive元数据存储的Kerberos主体名称。
hive.server2.authentication.kerberos.principal-Hive Server2的Kerberos主体名称。
spark.shuffle.service.enabledtrue是否启用Spark Shuffle服务。
hive.strict.checks.orderby.no.limittrue是否在没有Limit操作的OrderBy语句中执行严格检查。
hive.strict.checks.no.partition.filtertrue是否在没有分区过滤条件的查询中执行严格检查。
hive.strict.checks.type.safetytrue是否执行严格的类型安全性检查。
hive.strict.checks.cartesian.productfalse是否执行严格的笛卡尔积检查。
hive.strict.checks.bucketingtrue是否执行严格的桶排序检查。

参数示例

<configuration>
  <!-- Hive元数据存储的URI -->
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://myhost:9083</value>
  </property>

  <!-- Hive元数据客户端套接字超时时间(以毫秒为单位) -->
  <property>
    <name>hive.metastore.client.socket.timeout</name>
    <value>300</value>
  </property>

  <!-- Hive数据仓库目录 -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>

  <!-- 子目录是否继承权限 -->
  <property>
    <name>hive.warehouse.subdir.inherit.perms</name>
    <value>true</value>
  </property>

  <!-- 自动转换连接类型的Join操作 -->
  <property>
    <name>hive.auto.convert.join</name>
    <value>true</value>
  </property>

  <!-- 自动转换连接类型的Join操作时条件不满足的最大数据量(以字节为单位) -->
  <property>
    <name>hive.auto.convert.join.noconditionaltask.size</name>
    <value>20971520</value>
  </property>

  <!-- 是否优化Bucket Map Join的Sorted Merge -->
  <property>
    <name>hive.optimize.bucketmapjoin.sortedmerge</name>
    <value>false</value>
  </property>

  <!-- SMB Join操作缓存的行数 -->
  <property>
    <name>hive.smbjoin.cache.rows</name>
    <value>10000</value>
  </property>

  <!-- 是否启用Hive Server2日志记录操作 -->
  <property>
    <name>hive.server2.logging.operation.enabled</name>
    <value>true</value>
  </property>

  <!-- Hive Server2操作日志的存储位置 -->
  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/var/log/hive/operation_logs</value>
  </property>

  <!-- MapReduce作业的Reduce任务数 -->
  <property>
    <name>mapred.reduce.tasks</name>
    <value>-1</value>
  </property>

  <!-- 每个Reduce任务的数据量(以字节为单位) -->
  <property>
    <name>hive.exec.reducers.bytes.per.reducer</name>
    <value>67108864</value>
  </property>

  <!-- 最大允许复制文件的大小(以字节为单位) -->
  <property>
    <name>hive.exec.copyfile.maxsize</name>
    <value>33554432</value>
  </property>

  <!-- 同时运行的最大Reduce任务数 -->
  <property>
    <name>hive.exec.reducers.max</name>
    <value>1099</value>
  </property>

  <!-- Vectorized Group By操作的检查间隔 -->
  <property>
    <name>hive.vectorized.groupby.checkinterval</name>
    <value>4096</value>
  </property>

  <!-- Vectorized Group By操作的Flush比例 -->
  <property>
    <name>hive.vectorized.groupby.flush.percent</name>
    <value>0.1</value>
  </property>

  <!-- 是否使用统计信息来优化查询计划 -->
  <property>
    <name>hive.compute.query.using.stats</name>
    <value>false</value>
  </property>

  <!-- 是否启用向量化执行引擎 -->
  <property>
    <name>hive.vectorized.execution.enabled</name>
    <value>true</value>
  </property>

  <!-- 是否在Reduce阶段启用向量化执行 -->
  <property>
    <name>hive.vectorized.execution.reduce.enabled</name>
    <value>true</value>
  </property>

  <!-- 是否使用向量化输入格式 -->
  <property>
    <name>hive.vectorized.use.vectorized.input.format</name>
    <value>true</value>
  </property>

  <!-- 是否使用检查表达式的向量化执行 -->
  <property>
    <name>hive.vectorized.use.checked.expressions</name>
    <value>true</value>
  </property>

  <!-- 是否使用向量化序列化和反序列化 -->
  <property>
    <name>hive.vectorized.use.vector.serde.deserialize</name>
    <value>false</value>
  </property>

  <!-- 向量化适配器的使用模式 -->
  <property>
    <name>hive.vectorized.adaptor.usage.mode</name>
    <value>chosen</value>
  </property>

  <!-- 排除的向量化输入格式列表 -->
  <property>
    <name>hive.vectorized.input.format.excludes</name>
    <value>org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat</value>
  </property>

  <!-- 是否合并Map输出的小文件 -->
  <property>
    <name>hive.merge.mapfiles</name>
    <value>true</value>
  </property>

  <!-- 是否合并MapReduce输出的小文件 -->
  <property>
    <name>hive.merge.mapredfiles</name>
    <value>false</value>
  </property>

  <!-- 是否启用CBO优化 -->
  <property>
    <name>hive.cbo.enable</name>
    <value>false</value>
  </property>

  <!-- Fetch任务转换级别 -->
  <property>
    <name>hive.fetch.task.conversion</name>
    <value>minimal</value>
  </property>

  <!-- 触发Fetch任务转换的数据量阈值(以字节为单位) -->
  <property>
    <name>hive.fetch.task.conversion.threshold</name>
    <value>268435456</value>
  </property>

  <!-- Limit操作的内存使用百分比 -->
  <property>
    <name>hive.limit.pushdown.memory.usage</name>
    <value>0.1</value>
  </property>

  <!-- 是否合并Spark任务输出的小文件 -->
  <property>
    <name>hive.merge.sparkfiles</name>
    <value>true</value>
  </property>

  <!-- 合并小文件时的平均大小(以字节为单位) -->
  <property>
    <name>hive.merge.smallfiles.avgsize</name>
    <value>16777216</value>
  </property>

  <!-- 每个任务合并的数据量(以字节为单位) -->
  <property>
    <name>hive.merge.size.per.task</name>
    <value>268435456</value>
  </property>

  <!-- 是否启用重复消除优化 -->
  <property>
    <name>hive.optimize.reducededuplication</name>
    <value>true</value>
  </property>

  <!-- 最小Reduce任务数以启用重复消除优化 -->
  <property>
    <name>hive.optimize.reducededuplication.min.reducer</name>
    <value>4</value>
  </property>

  <!-- 是否启用Map端聚合 -->
  <property>
    <name>hive.map.aggr</name>
    <value>true</value>
  </property>

  <!-- Map端聚合的哈希表内存比例 -->
  <property>
    <name>hive.map.aggr.hash.percentmemory</name>
    <value>0.5</value>
  </property>

  <!-- 是否优化动态分区排序 -->
  <property>
    <name>hive.optimize.sort.dynamic.partition</name>
    <value>false</value>
  </property>

  <!-- Hive执行引擎类型(mr、tez、spark) -->
  <property>
    <name>hive.execution.engine</name>
    <value>mr</value>
  </property>

  <!-- Spark Executor的内存大小 -->
  <property>
    <name>spark.executor.memory</name>
    <value>2572261785b</value>
  </property>

  <!-- Spark Driver的内存大小 -->
  <property>
    <name>spark.driver.memory</name>
    <value>3865470566b</value>
  </property>

  <!-- 每个Spark Executor的核心数 -->
  <property>
    <name>spark.executor.cores</name>
    <value>4</value>
  </property>

  <!-- Spark Driver的内存Overhead -->
  <property>
    <name>spark.yarn.driver.memoryOverhead</name>
    <value>409m</value>
  </property>

  <!-- Spark Executor的内存Overhead -->
  <property>
    <name>spark.yarn.executor.memoryOverhead</name>
    <value>432m</value>
  </property>

  <!-- 是否启用动态资源分配 -->
  <property>
    <name>spark.dynamicAllocation.enabled</name>
    <value>true</value>
  </property>

  <!-- 动态资源分配的初始Executor数量 -->
  <property>
    <name>spark.dynamicAllocation.initialExecutors</name>
    <value>1</value>
  </property>

  <!-- 动态资源分配的最小Executor数量 -->
  <property>
    <name>spark.dynamicAllocation.minExecutors</name>
    <value>1</value>
  </property>

  <!-- 动态资源分配的最大Executor数量 -->
  <property>
    <name>spark.dynamicAllocation.maxExecutors</name>
    <value>2147483647</value>
  </property>

  <!-- 是否在Hive元数据存储中执行setugi操作 -->
  <property>
    <name>hive.metastore.execute.setugi</name>
    <value>true</value>
  </property>

  <!-- 是否支持并发操作 -->
  <property>
    <name>hive.support.concurrency</name>
    <value>true</value>
  </property>

  <!-- ZooKeeper服务器列表 -->
  <property>
    <name>hive.zookeeper.quorum</name>
    <value>myhost04,myhost03,myhost02</value>
  </property>

  <!-- ZooKeeper客户端端口号 -->
  <property>
    <name>hive.zookeeper.client.port</name>
    <value>2181</value>
  </property>

  <!-- Hive使用的ZooKeeper命名空间 -->
  <property>
    <name>hive.zookeeper.namespace</name>
    <value>hive_zookeeper_namespace_hive</value>
  </property>

  <!-- 集群委派令牌存储类 -->
  <property>
    <name>hive.cluster.delegation.token.store.class</name>
    <value>org.apache.hadoop.hive.thrift.MemoryTokenStore</value>
  </property>

  <!-- 是否启用Hive Server2用户代理模式 -->
  <property>
    <name>hive.server2.enable.doAs</name>
    <value>true</value>
  </property>

  <!-- 是否启用Hive元数据存储的SASL认证 -->
  <property>
    <name>hive.metastore.sasl.enabled</name>
    <value>true</value>
  </property>

  <!-- Hive Server2的认证方式 -->
  <property>
    <name>hive.server2.authentication</name>
    <value>kerberos</value>
  </property>

  <!-- Hive元数据存储的Kerberos主体名称 -->
  <property>
    <name>hive.metastore.kerberos.principal</name>
    <value>hive/_HOST@MY.COM</value>
  </property>

  <!-- Hive Server2的Kerberos主体名称 -->
  <property>
    <name>hive.server2.authentication.kerberos.principal</name>
    <value>hive/_HOST@MY.COM</value>
  </property>

  <!-- 是否启用Spark Shuffle服务 -->
  <property>
    <name>spark.shuffle.service.enabled</name>
    <value>true</value>
  </property>

  <!-- 是否在没有Limit操作的OrderBy语句中执行严格检查 -->
  <property>
    <name>hive.strict.checks.orderby.no.limit</name>
    <value>false</value>
  </property>

  <!-- 是否在没有分区过滤条件的查询中执行严格检查 -->
  <property>
    <name>hive.strict.checks.no.partition.filter</name>
    <value>false</value>
  </property>

  <!-- 是否执行严格的类型安全性检查 -->
  <property>
    <name>hive.strict.checks.type.safety</name>
    <value>true</value>
  </property>

  <!-- 是否执行严格的笛卡尔积检查 -->
  <property>
    <name>hive.strict.checks.cartesian.product</name>
    <value>false</value>
  </property>

  <!-- 是否执行严格的桶排序检查 -->
  <property>
    <name>hive.strict.checks.bucketing</name>
    <value>true</value>
  </property>
</configuration>

具体用途:

  • hive.metastore.uris:Hive元数据存储的URI。
  • hive.metastore.client.socket.timeout:Hive元数据客户端套接字超时时间。
  • hive.metastore.warehouse.dir:Hive数据仓库目录。
  • hive.warehouse.subdir.inherit.perms:子目录是否继承权限。
  • hive.auto.convert.join:自动转换连接类型的Join操作。
  • hive.auto.convert.join.noconditionaltask.size:自动转换连接类型的Join操作时条件不满足的最大数据量。
  • hive.optimize.bucketmapjoin.sortedmerge:是否优化Bucket Map Join的Sorted Merge。
  • hive.smbjoin.cache.rows:SMB Join操作缓存的行数。
  • hive.server2.logging.operation.enabled:是否启用Hive Server2日志记录操作。
  • hive.server2.logging.operation.log.location:Hive Server2操作日志的存储位置。
  • mapred.reduce.tasks:MapReduce作业的Reduce任务数。
  • hive.exec.reducers.bytes.per.reducer:每个Reduce任务的数据量。
  • hive.exec.copyfile.maxsize:最大允许复制文件的大小。
  • hive.exec.reducers.max:同时运行的最大Reduce任务数。
  • hive.vectorized.groupby.checkinterval:Vectorized Group By操作的检查间隔。
  • hive.vectorized.groupby.flush.percent:Vectorized Group By操作的Flush比例。
  • hive.compute.query.using.stats:是否使用统计信息来优化查询计划。
  • hive.vectorized.execution.enabled:是否启用向量化执行引擎。
  • hive.vectorized.execution.reduce.enabled:是否在Reduce阶段启用向量化执行。
  • hive.vectorized.use.vectorized.input.format:是否使用向量化输入格式。
  • hive.vectorized.use.checked.expressions:是否使用检查表达式的向量化执行。
  • hive.vectorized.use.vector.serde.deserialize:是否使用向量化序列化和反序列化。
  • hive.vectorized.adaptor.usage.mode:向量化适配器的使用模式。
  • hive.vectorized.input.format.excludes:排除的向量化输入格式列表。
  • hive.merge.mapfiles:是否合并Map输出的小文件。
  • hive.merge.mapredfiles:是否合并MapReduce输出的小文件。
  • hive.cbo.enable:是否启用CBO优化。
  • hive.fetch.task.conversion:Fetch任务转换级别。
  • hive.fetch.task.conversion.threshold:触发Fetch任务转换的数据量阈值。
  • hive.limit.pushdown.memory.usage:Limit操作的内存使用百分比。
  • hive.merge.sparkfiles:是否合并Spark任务输出的小文件。
  • hive.merge.smallfiles.avgsize:合并小文件时的平均大小。
  • hive.merge.size.per.task:每个任务合并的数据量。
  • hive.optimize.reducededuplication:是否启用重复消除优化。
  • hive.optimize.reducededuplication.min.reducer:最小Reduce任务数以启用重复消除优化。
  • hive.map.aggr:是否启用Map端聚合。
  • hive.map.aggr.hash.percentmemory:Map端聚合的哈希表内存比例。
  • hive.optimize.sort.dynamic.partition:是否优化动态分区排序。
  • hive.execution.engine:Hive执行引擎类型。
  • spark.executor.memory:Spark Executor的内存大小。
  • spark.driver.memory:Spark Driver的内存大小。
  • spark.executor.cores:每个Spark Executor的核心数。
  • spark.yarn.driver.memoryOverhead:Spark Driver的内存Overhead。
  • spark.yarn.executor.memoryOverhead:Spark Executor的内存Overhead。
  • spark.dynamicAllocation.enabled:是否启用动态资源分配。
  • spark.dynamicAllocation.initialExecutors:动态资源分配的初始Executor数量。
  • spark.dynamicAllocation.minExecutors:动态资源分配的最小Executor数量。
  • spark.dynamicAllocation.maxExecutors:动态资源分配的最大Executor数量。
  • hive.metastore.execute.setugi:是否在Hive元数据存储中执行setugi操作。
  • hive.support.concurrency:是否支持并发操作。
  • hive.zookeeper.quorum:ZooKeeper服务器列表。
  • hive.zookeeper.client.port:ZooKeeper客户端端口号。
  • hive.zookeeper.namespace:Hive使用的ZooKeeper命名空间。
  • hive.cluster.delegation.token.store.class:集群委派令牌存储类。
  • hive.server2.enable.doAs:是否启用Hive Server2用户代理模式。
  • hive.metastore.sasl.enabled:是否启用Hive元数据存储的SASL认证。
  • hive.server2.authentication:Hive Server2的认证方式。
  • hive.metastore.kerberos.principal:Hive元数据存储的Kerberos主体名称。
  • hive.server2.authentication.kerberos.principal:Hive Server2的Kerberos主体名称。
  • spark.shuffle.service.enabled:是否启用Spark Shuffle服务。
  • hive.strict.checks.orderby.no.limit:是否在没有Limit操作的OrderBy语句中执行严格检查。
  • hive.strict.checks.no.partition.filter:是否在没有分区过滤条件的查询中执行严格检查。
  • hive.strict.checks.type.safety:是否执行严格的类型安全性检查。
  • hive.strict.checks.cartesian.product:是否执行严格的笛卡尔积检查。
  • hive.strict.checks.bucketing:是否执行严格的桶排序检查。

这些参数的具体值可以根据实际需求进行修改和配置,以满足您的Hive和Spark环境的要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值