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

参数说明

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

参数示例

<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环境的要求。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐