Hive 有哪些地方可以进行压缩设置呢?

简介: Hive 压缩设置

前言

在Hive作业执行过程中,job执行速度更多的是局限于I/O,而不是受制于CPU。如果是这样,通过文件压缩可以提高作业性能。然而,如果作业的执行速度受限于CPU的性能,那么压缩文件可能就不合适,因为文件的压缩和解压会比较耗时。当然确定适合集群最优压缩方式可以通过实验测试,然后衡量结果。

Map/Reduce输出压缩

在查询分析过程中,Map/Reduce的输出可以对任务输出进行压缩,既可以减少文件存储空间,又可以减少网络传输的数据量,加快数据在网络不同节点之间的传输速度,从而获得性能提升。

压缩设置如下:

set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set mapred.output.compression.type=BLOCK;

Map-Reduce作业中间压缩

Hive的多个Map-Reduce作业之间生成的中间File是否可以被压缩呢?答案是肯定的!

压缩设置如下:

set hive.exec.compress.intermediate=true;
set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;(常用)
set hive.intermediate.compression.type=BLOCK;

压缩格式

Hive中我们可以选择的压缩格式有:

  • GZip
  • BZip2
  • Snappy
  • LZO

GZip 和 BZip2压缩具有较高的压缩比保证压缩文件最小,但是压缩和解压缩过于耗时。这两种方式具有很好的压缩效果,减少I/O,比较适合最终的输出结果压缩的场景。

Snappy和LZO压缩和解压缩速度很快,但是压缩比较低,压缩文件较大。这两种方式对CPU的消耗较低,对于Map-Reduce作业中间压缩的场景是比较的压缩方式。

注意:BZip2 和 LZO支持压缩文件分割,而GZip 和 Snappy不支持。

序列化文件的压缩

序列化文件支持三种不同的压缩方式:

  • NONE :表示不压缩
  • RECORD :表示按行压缩
  • BLOCK. :表示按块压缩

RECORD是默认值;BLOCK压缩方式比较有效,同时可以支持文件分割。

相关文章
|
SQL 分布式计算 算法
Hive关联时丢失数据问题和常用的Hive SQL参数设置
针对结果的发生,本文从以下方面分析原因及提供解决方案: - 右表没有匹配的数据 - 关联键数据类型不匹配 - 受count列null值影响 - Hive版本问题,在某些版本中,左连可能导致右表为null - 数据倾斜 并在文末附属了`Hive SQL常用参数设置`的说明。
Hive关联时丢失数据问题和常用的Hive SQL参数设置
|
存储 SQL 分布式计算
一文彻底搞懂Hive的数据存储与压缩
怎样弄清Hive的数据存储与压缩呢,以下回答告诉你。
752 0
一文彻底搞懂Hive的数据存储与压缩
|
SQL 存储 分布式计算
Hive学习---6、文件格式和压缩
Hive学习---6、文件格式和压缩
Hive学习---6、文件格式和压缩
|
7月前
|
SQL 存储 编解码
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
Hive中的压缩技术是如何实现的?请解释其原理和常用压缩算法。
79 0
|
SQL 分布式计算 Hadoop
Hive 作业中Reduce个数设置多少合适呢?
Hive 作业Reduce个数设置原则
730 0
|
存储 SQL JSON
hive文件与压缩
hive文件与压缩
hive文件与压缩
|
SQL HIVE
hive设置显示当前库名称
hive设置显示当前库名称
|
SQL 分布式计算 负载均衡
hive 参数设置大全
hive 参数设置大全