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

相关推荐
卷毛迷你猪2 天前
快速实验篇(A11)数据集成与多维分析:从单实验产出到跨实验宽表
hive·hadoop
西木莉2 天前
数据仓库概述
数据仓库
卷毛迷你猪3 天前
快速实验篇(A10)短序列上 SPI 的失效机制
hadoop
Francek Chen3 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria3 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
计算机源码社3 天前
基于大数据技术的台北市住宅价格影响因素挖掘与可视化分析-基于Python与Hadoop的台北市住宅价格数据仓库构建与可视化
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
计算机源码社3 天前
基于Hadoop+Spark的乳腺癌病理数据可视化分析系统 基于K-Means聚类与PCA降维的乳腺癌形态特征分析系统
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
Moshow郑锴4 天前
从“水库”到“直饮水站”:重新理解 Data Mart 与 Data Lake、Data Lakehouse、Data Warehouse 的区别
数据仓库·data·湖仓一体
躺柒4 天前
读数据架构知识体系指南01关系数据仓库(上)
数据仓库·架构·数据分析·spark·数据湖·关系数据库·企业数据仓库
卷毛迷你猪4 天前
快速实验篇(A9-2)Python vs MapReduce:小批量任务的工具选择
大数据·hadoop