由于Hive的执行依赖于底层的MapReduce作业,因此对Hadoop作业的优化或者对MapReduce作业的调整是提高Hive性能的基础。所以我们可以通过一系列的调优方法,来提高大幅度地Hive查询的性能。
1、启用压缩
压缩可以使磁盘上存储的数据量变小,通过降低I/O来提高查询速度。
查出所使用的Hive版本支持的压缩编码方式,下面的set命令列出可用的编解码器(CDH 5.8.x中的Hive)。
hive> set io.compression.codecs;
io.compression.codecs=
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compres s.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.DeflateCodec,
org.apache.hadoop.io.compress.SnappyCodec,
org.apache.hadoop.io.compress.Lz4Codec
hive>
一个复杂的Hive查询在提交后,通常被转换为一系列中间阶段的MapReduce作业,Hive引擎将这些作业串联起来完成整个查询。可以将这些中间数据进行压缩。这里所 说的中间数据指的是上一个MapReduce作业的输出,这些输出将被下