全国咨询/投诉热线:400-618-4000

Hive2.x压缩配置教程

更新时间:2020年07月30日15时24分 来源:传智播客 浏览次数:

Map输出压缩

除了创建表时指定保存数据时压缩,在查询分析过程中,Map的输出也可以进行压缩。由于map任务的输出需要写到磁盘并通过网络传输到reducer节点,所以通过使用LZO、LZ4或者Snappy这样的快速压缩方式,是可以获得性能提升的,因为需要传输的数据减少了。

·MapReduce配置项:

mapreduce.map.output.compress

·设置是否启动map输出的压缩机制,默认为false。在需要减少网络传输的时候,可以设置为true。

mapreduce.map.output.compress.codec

设置map输出压缩机制,默认为org.apache.hadoop.io.compress.DefaultCodec,推荐使用SnappyCodec:org.apache.hadoop.io.compress.SnappyCodec。

Hive2.x压缩配置01


Reduce结果压缩

是否对任务输出产生的结果进行压缩,默认值false。对传输数据进行压缩,既可以减少文件的存储空间,又可以加快数据在网络不同节点之间的传输速度。

配置项:mapreduce.output.fileoutputformat.compress

Hive2.x压缩配置02

Hive执行过程通用压缩设置

主要包括压缩/解码器设置和压缩方式设置:

·mapreduce.output.fileoutputformat.compress.codec(Yarn)

map输出所用的压缩codec,默认为org.apache.hadoop.io.compress.DefaultCodec,推荐使用SnappyCodec:org.apache.hadoop.io.compress.SnappyCodec。

·mapreduce.output.fileoutputformat.compress.type

输出产生任务数据的压缩方式,默认值RECORD,可配置值有:NONE、RECORD、BLOCK。推荐使用BLOCK,即针对一组记录进行批量压缩,压缩效率更高。

Hive2.x压缩配置03

Hive的Map-Reduce之间是否进行压缩

控制 Hive 在多个 map-reduce 作业之间生成的中间 files 是否被压缩。压缩编解码器和其他选项由上面Job的变量mapreduce.output.fileoutputformat.compress.*确定。

set hive.exec.compress.intermediate=true;

Hive查询最终结果压缩

控制是否压缩查询的最终输出(到 local/hdfs 文件或 Hive table)。压缩编解码器和其他选项由 上面Job中的变量mapreduce.output.fileoutputformat.compress.*确定。

set hive.exec.compress.output=true;


猜你喜欢:
大数据培训课程