Hive之set参数大全-1

本文围绕Hive展开,介绍了多个配置属性。如控制UDF按需加载、统计信息收集粒度、表数据归档等。还涉及Map Join和Sort - Merge Join的优化配置,以及自动进度报告、列别名格式、Avro数据读取等方面的设置,可按需调整以优化性能。

A

控制是否允许在需要时按需加载用户定义函数(UDF)

hive.allow.udf.load.on.demand 是 Apache Hive 中的一个配置属性,用于控制是否允许在需要时按需加载用户定义函数(UDF)。

在 Hive 中,UDFs是用户编写的自定义函数,可以在 Hive SQL 查询中使用。这个配置属性的目的是在查询执行期间动态加载UDFs,而不是在Hive服务器启动时就加载所有UDFs,从而减小启动时的开销。

如果 hive.allow.udf.load.on.demand 被设置为 true,则 Hive 将在查询需要时动态加载所需的 UDFs。如果设置为 false,则在启动 Hive 时会加载所有的 UDFs,而不考虑是否在查询中使用它们。

以下是一个示例配置:

SET hive.allow.udf.load.on.demand=true;

这个配置属性的默认值可能取决于 Hive 的版本,因此在使用时最好查阅相应版本的文档以获取准确的信息。

指定在运行 ANALYZE TABLE 语句时是否收集分区级别的统计信息。该配置主要影响 Hive 对表或分区进行统计信息收集时的粒度

hive.analyze.stmt.collect.partlevel.stats 是 Hive 中的一个配置属性,用于指定在运行 ANALYZE TABLE 语句时是否收集分区级别的统计信息。该配置主要影响 Hive 对表或分区进行统计信息收集时的粒度。

在 Hive 中,ANALYZE TABLE 语句用于收集关于表或分区的统计信息,以帮助优化查询计划。hive.analyze.stmt.collect.partlevel.stats 配置项可以设置是否在分区级别收集统计信息。如果设置为 true,将收集分区级别的统计信息;如果设置为 false,将只收集表级别的统计信息。

在 Hive 配置中,可以使用以下方式设置该属性:

-- 设置在运行 ANALYZE TABLE 语句时收集分区级别的统计信息
SET hive.analyze.stmt.collect.partlevel.stats=true;

或者在 Hive 的配置文件(如 hive-site.xml)中添加:

<property>
  <name>hive.analyze.stmt.collect.partlevel.stats</name>
  <value>true</value>
</property>

请注意,在某些情况下,收集分区级别的统计信息可能会增加统计信息收集的时间和计算成本。根据实际表和查询的特性,可以根据性能需求和查询优化的需要来设置该配置项。

指定是否启用表数据的归档

hive.archive.enabled 是 Hive 中的一个配置属性,用于指定是否启用表数据的归档。当启用表数据归档时,Hive 将会对表的数据进行归档,以减少存储空间占用,同时保留原始数据的备份。

在 Hive 中,表数据归档可以通过在表上执行 ARCHIVE TABLE 命令来手动触发,也可以设置 hive.archive.enabledtrue,使得 Hive 在插入新数据时自动进行表数据的归档。

-- 启用表数据的归档
SET hive.archive.enabled=true;

或者在 Hive 的配置文件(如 hive-site.xml)中添加:

<property>
  <name>hive.archive.enabled</name>
  <value>true</value>
</property>

启用表数据归档后,Hive 将自动对表的旧数据进行压缩归档,以减少存储空间的使用。归档后的数据将被移动到一个特定的目录,而原始数据则保留在表的原始目录中。

请注意,启用表数据归档可能会影响查询性能,因为在查询过程中需要解压缩归档的数据。根据实际使用情况,可以根据性能和存储需求来决定是否启用表数据归档。

指定在使用 Apache Arrow 作为列存储格式时,批处理的大小(batch size)

hive.arrow.batch.size 是 Hive 中的一个配置属性,用于指定在使用 Apache Arrow 作为列存储格式时,批处理的大小(batch size)。Apache Arrow 是一种内存布局,用于在不同系统和编程语言之间高效传输大型数据集。

在 Hive 中,可以通过设置 hive.arrow.batch.size 来调整 Apache Arrow 批处理的大小。批处理的大小决定了在查询过程中一次性处理的数据块大小。

在 Hive 配置中,可以使用以下方式设置该属性:

-- 设置 Apache Arrow 批处理的大小
SET hive.arrow.batch.size=4096; -- 例如,将批处理大小设置为 4096 字节

或者在 Hive 的配置文件(如 hive-site.xml)中添加:

<property>
  <name>hive.arrow.batch.size</name>
  <value>4096</value> <!-- 例如,将批处理大小设置为 4096 字节 -->
</property>

请注意,适当调整 Apache Arrow 批处理的大小可能对查询性能产生影响,具体的最佳值取决于数据集的特性、系统配置以及查询模式。在实际应用中,可能需要根据性能测试和调整来选择合适的值。

指定 Apache Arrow 的根内存分配器(Root Allocator)的限制

hive.arrow.root.allocator.limit 是 Hive 中的一个配置属性,用于指定 Apache Arrow 的根内存分配器(Root Allocator)的限制。Apache Arrow 是一种列式存储格式,用于在不同系统和编程语言之间高效传输大型数据集。

在 Hive 中,可以通过设置 hive.arrow.root.allocator.limit 来限制 Apache Arrow 的根内存分配器可以使用的最大内存量。

在 Hive 配置中,可以使用以下方式设置该属性:

-- 设置 Apache Arrow 根内存分配器的限制
SET hive.arrow.root.allocator.limit=1073741824; -- 例如,将限制设置为 1 GB

或者在 Hive 的配置文件(如 hive-site.xml)中添加:

<property>
  <name>hive.arrow.root.allocator.limit</name>
  <value>1073741824</value> <!-- 例如,将限制设置为 1 GB -->
</property>

上述配置中,hive.arrow.root.allocator.limit 的值为 1073741824,表示根内存分配器的限制为 1 GB。

这个限制用于控制 Apache Arrow 在查询过程中使用的内存量,对于大型数据集或者内存资源有限的环境,可能需要根据实际情况进行调整。在调整时,建议进行性能测试,确保分配的内存量足够支持查询操作。

指定是否启用异步记录日志功能

hive.async.log.enabled 是 Hive 中的一个配置属性,用于指定是否启用异步记录日志功能。当启用异步日志记录时,Hive 将使用异步的方式将查询日志写入到日志文件中,而不是同步写入。

在 Hive 中,异步日志记录可以提高查询的性能,因为查询不需要等待日志写入完成才能继续执行。这对于处理大量查询的环境中特别有用,因为同步写入日志可能成为性能瓶颈。

在 Hive 配置中,可以使用以下方式设置 hive.async.log.enabled

-- 启用异步记录日志
SET hive.async.log.enabled=true;

或者在 Hive 的配置文件(如 hive-site.xml)中添加:

<property>
  <name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

OnePandas

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

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

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

打赏作者

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

抵扣说明:

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

余额充值