hive底层是MapReduce运行的。所以可以以MapReduce的方式进行对Hive优化。
一 map端的压缩:
set hive.exec.compress.intermediate=true;
set mapreduce.map.output.compress=true;
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec
# 设置压缩方式,我这里是用Snappy进行压缩的。
二:reduce端压缩:
set hive.exec.compress.output=true;
set mapreduce.output.fileoutputformat.compress=true;
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
# 设置压缩方式,我这里是用Snappy进行压缩的。
set mapreduce.output.fileoutputformat.compress.type=BLOCK;
# 设置输出为块元素
三:存储格式修改:
存储格式使用的是orc,在创建表的时候使用,只有从另一张表中迁移来时在有效。
create table if not exists user(id int, name string)
row format
delimited fields
terminated by "\t"
stored as orc;
四:其他优化:
1:map端进行聚合:
set hive.map.aggr=true;
2:设置负载均衡:
set hive.groupby.skewindata=true;
3:map端进行小文件合并:
set hive.input.format=org.apache.hadoop.ql.io.CompresshiveInputFormat;
本文详细介绍了通过MapReduce端的压缩、存储格式修改、负载均衡等手段对Hive进行性能优化的方法,包括Snappy压缩、orc存储格式使用、map端聚合及小文件合并等关键步骤。
4736

被折叠的 条评论
为什么被折叠?



