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 的性能和效率。

相关推荐
张工在路上14 小时前
WPF 布局基础概述
大数据·hadoop·wpf
BYSJMG21 小时前
计算机毕设选题|基于大数据与文本挖掘的自动驾驶事故成因分析及可视化研究|Hadoop+PySpark+Django+Vue
大数据·hadoop·信息可视化·django·自动驾驶·kmeans·课程设计
weixin_307779132 天前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
邀星月为媒2 天前
从零打造一个属于自己的 AI Agent:Core Hive Agent 开源项目解析
人工智能·hive·开源
BI专家之路2 天前
安装linux/hadoop/jdk/hive
linux·hive·hadoop
2601_962073974 天前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
大数据·hadoop·架构
fastjson_4 天前
Hive 基础函数
数据仓库·hive·hadoop
kuroomi4 天前
hadoop高可用架构
hadoop
APItesterCris5 天前
告别人工盯品:借助 OpenClaw 搭建商品自动监控与数据分析系统(完整实操)
大数据·数据库·数据仓库·自动化
千里码aicood5 天前
基于Hadoop的汽车销量分析与可视化
大数据·hadoop·分布式