好吧,我知道一些优化技术,例如在编写查询时分区和存储桶。在 TEZ 模式下运行配置单元。但是,除此之外,还有任何其他优化技术 蜂巢 .
您至少可以设置以下参数以进行性能优化:-
set set hive.exec.reducers.max=no_of_reducers;
-- 没有用于并行处理的减速器。
set hive.exec.reducers.bytes.per.reducer=value_in_bytes;
-- 平均分配每个减速器的处理负载。
set hive.auto.convert.join=true;
-- 如果可能,在运行时自动将连接转换为映射连接,
set hive.enforce.bucketing = true;
-- 如果表是分桶的,则需要写入此参数,否。 的桶将等于 No. 的化简器。
有很多技巧:
- 使用特兹
- 使用 ORCFile
- 使用矢量化
- 基于成本的查询优化
- 编写正确高效的 SQL
有关更多详细信息,请参阅下面的 hortonworks 帖子:
http://hortonworks.com/blog/5-ways-make-hive-queries-run-faster/