作为企业Hadoop应用的核心产品之一,Hive承载着公司95%以上的离线统计,甚至很多企业里的离线统计全由Hive完成;
Hive在企业云计算平台发挥的作用和影响越来越大,如何优化提速已经显得至关重要;
Hive作业的规模决定着优化层级,一个Hive作业的优化和一万个Hive作业的优化截然不同;
后续文章将从如下三个方面进行hive的优化介绍:
1) 架构方面(高效、全局、局部)----最有效的优化,好的架构能让作业性能提高很多
a) 分表;(日志表量大而且作业访问次数多,造成耗时较长;将用的比较少的数据剥离出来)
b) 合理利用中间结果集;
i. 重视查过就丢的资源浪费;特别是大数据量的表,如果查完就丢,IO开销会很大;随着作业越来越多,造成hadoop的IO负载瓶颈;
ii. 梳理作业之间的“血缘”关系,把他们之间使用相同的中间结果抽取出来。
c) 常用复杂/低效统一给出,以避免上层多个作业每次需要的时候再去计算,提高上层多个作业的计算效率;
d) 设计表分区:静态/动态分区,静态分区用的比较多;
2) HQL语法层面(中低效、Job内)
通过执行计划分析
3) Hive参数层面(全局)
太暴力,很少用;但有时会起到很好的效果;
Hive优化策略介绍
时间: 2024-10-14 12:15:31