hive 中各种参数

在 Apache Hive 中,参数(也称为配置属性)用于控制 Hive 的行为和性能。这些参数可以优化查询性能、调整资源使用、解决数据倾斜问题等。Hive 参数通常分为以下几类:


1. 查询执行参数

这些参数用于控制查询的执行方式和性能。

1.1 MapReduce 相关参数

  • hive.exec.reducers.bytes.per.reducer:

    • 默认值:256 MB(256000000

    • 作用:每个 Reduce 任务处理的数据量。

    • 示例:SET hive.exec.reducers.bytes.per.reducer = 500000000;(每个 Reducer 处理 500 MB 数据)

  • hive.exec.reducers.max:

    • 默认值:1009

    • 作用:设置最大的 Reduce 任务数。

    • 示例:SET hive.exec.reducers.max = 2000;

  • hive.exec.parallel:

    • 默认值:false

    • 作用:是否启用并行执行。

    • 示例:SET hive.exec.parallel = true;

  • hive.exec.dynamic.partition:

    • 默认值:false

    • 作用:是否启用动态分区。

    • 示例:SET hive.exec.dynamic.partition = true;

  • hive.exec.dynamic.partition.mode:

    • 默认值:strict

    • 作用:动态分区模式,strict 表示必须指定至少一个静态分区,nonstrict 表示可以完全动态分区。

    • 示例:SET hive.exec.dynamic.partition.mode = nonstrict;


1.2 聚合和倾斜优化参数

  • hive.map.aggr:

    • 默认值:true

    • 作用:是否在 Map 阶段进行聚合。

    • 示例:SET hive.map.aggr = true;

  • hive.groupby.skewindata:

    • 默认值:false

    • 作用:是否启用数据倾斜优化。

    • 示例:SET hive.groupby.skewindata = true;

  • hive.optimize.skewjoin:

    • 默认值:false

    • 作用:是否启用 Skew Join 优化。

    • 示例:SET hive.optimize.skewjoin = true;


1.3 Join 优化参数

  • hive.auto.convert.join:

    • 默认值:true

    • 作用:是否自动将小表转换为 Map Join。

    • 示例:SET hive.auto.convert.join = true;

  • hive.mapjoin.smalltable.filesize:

    • 默认值:25 MB(25000000

    • 作用:小表的大小阈值,超过该值则不转换为 Map Join。

    • 示例:SET hive.mapjoin.smalltable.filesize = 50000000;(50 MB)


2. 资源管理参数

这些参数用于控制 Hive 任务的资源分配。

2.1 内存相关参数

  • hive.auto.convert.join.noconditionaltask.size:

    • 默认值:10 MB(10000000

    • 作用:Map Join 中小表的大小阈值。

    • 示例:SET hive.auto.convert.join.noconditionaltask.size = 20000000;(20 MB)

  • hive.tez.container.size:

    • 默认值:-1(未设置)

    • 作用:设置 Tez 容器的内存大小。

    • 示例:SET hive.tez.container.size = 4096;(4 GB)


2.2 并行度和任务数

  • hive.exec.parallel.thread.number:

    • 默认值:8

    • 作用:并行执行的线程数。

    • 示例:SET hive.exec.parallel.thread.number = 16;

  • hive.tez.grouping.max-size:

    • 默认值:1 GB(1073741824

    • 作用:Tez 任务的最大分组大小。

    • 示例:SET hive.tez.grouping.max-size = 2147483648;(2 GB)


3. 数据存储和压缩参数

这些参数用于控制数据的存储格式和压缩方式。

3.1 存储格式

  • hive.default.fileformat:

    • 默认值:TextFile

    • 作用:设置默认的文件存储格式。

    • 示例:SET hive.default.fileformat = ORC;

  • hive.exec.compress.output:

    • 默认值:false

    • 作用:是否压缩输出数据。

    • 示例:SET hive.exec.compress.output = true;


3.2 压缩参数

  • hive.exec.compress.intermediate:

    • 默认值:false

    • 作用:是否压缩中间数据。

    • 示例:SET hive.exec.compress.intermediate = true;

  • mapreduce.map.output.compress.codec:

    • 默认值:org.apache.hadoop.io.compress.DefaultCodec

    • 作用:设置 Map 输出数据的压缩编解码器。

    • 示例:SET mapreduce.map.output.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;


4. 日志和调试参数

这些参数用于控制日志输出和调试信息。

4.1 日志级别

  • hive.log.level:

    • 默认值:INFO

    • 作用:设置 Hive 的日志级别。

    • 示例:SET hive.log.level = DEBUG;

  • hive.querylog.location:

    • 默认值:/tmp/<user>

    • 作用:设置查询日志的存储位置。

    • 示例:SET hive.querylog.location = /var/log/hive/querylog;


4.2 调试参数

  • hive.debug.localtask:

    • 默认值:false

    • 作用:是否启用本地任务调试。

    • 示例:SET hive.debug.localtask = true;


5. 其他常用参数

  • hive.fetch.task.conversion:

    • 默认值:minimal

    • 作用:控制是否将简单查询转换为 Fetch 任务。

    • 示例:SET hive.fetch.task.conversion = more;

  • hive.execution.engine:

    • 默认值:mr(MapReduce)

    • 作用:设置 Hive 的执行引擎。

    • 示例:SET hive.execution.engine = tez;


总结

Hive 提供了丰富的参数来优化查询性能、管理资源和调试任务。常用的参数包括:

  • 查询执行参数 :如 hive.exec.reducers.bytes.per.reducerhive.groupby.skewindata

  • 资源管理参数 :如 hive.tez.container.sizehive.exec.parallel.thread.number

  • 存储和压缩参数 :如 hive.default.fileformathive.exec.compress.output

  • 日志和调试参数 :如 hive.log.levelhive.debug.localtask

根据具体场景合理配置这些参数,可以显著提升 Hive 的性能和效率。

相关推荐
小刘爱喇石( ˝ᗢ̈˝ )3 小时前
hadoop框架与核心组件刨析(五)ZOOKEEPER及选举深度刨析
hadoop·zookeeper·云原生
winner88815 小时前
Hive SQL 精进系列:COALESCE 手册
hive·hadoop·sql
西域编娃9 小时前
Hadoop 集群部署与配置详解
大数据·linux·运维·hadoop·分布式
精神病不行计算机不上班16 小时前
【数据仓库与数据挖掘基础】第一章 概论/基础知识
数据仓库·数据挖掘
hellolianhua1 天前
大数据hadoop课程笔记
大数据·hadoop·笔记
乙卯年QAQ1 天前
【Hive】Hive安装
数据仓库·hive·hadoop
闯闯桑1 天前
Hive 中用于小文件合并的配置参数
数据仓库·hive·hadoop
月亮月亮要去太阳2 天前
Hadoop、Hive、Spark的关系
hive·hadoop·spark
Dragon--Z2 天前
本地部署Hive集群
数据仓库·hive·hadoop