使用Tez加速执行
Apache Tez是一种执行引擎,增加查询速度1到3倍
开启Tez执行引擎
set hive.execution.engine=tez;
如果使用Cloudera/Hortonworks,在Hive查询编辑器中有TEZ选项。
开启压缩
压缩技术减少数据传输量,所以会减少mappers和reducers之间的数据传输量,最好在mapper和reducer中分别单独进行压缩操作。
gzip作为最好的压缩格式,但是它却是不可分割的,使用时要小心。
其他格式是:snappy,lzo,bzip等等。
在mapper和reducer中设置压缩
set mapred.compress.map.output=true;
set mapred.output.compress=true;
使用orc文件格式
ORC(optimized record columnar)在Hive中是一种非常好的格式。可以使用ORC格式优化Hive查询,得到更快的执行和压缩大小。
创建orc文件的table
Create table orctbl
(
id int, name string,
address string
)
stored as ORC
tblproperties (“orc.compress”= “SNAPPY”);
优化你的joins操作
如果进行Join操作的表中有大量数据,不建议使用普通的join操作,建议使用Map join或者bucket