Hive优化

文章目录

  • 1.CBO优化
  • 2.谓词下推
  • 3.矢量化查询优化
  • 4.Fetch抓取优化
  • 5.本地模式
  • 6.并行执行
  • 7.严格模式

1.CBO优化

Hive优化_第1张图片

#启用CBO优化
set hive.cbo.enable=true;

2.谓词下推

通俗的来讲就是,在不影响最终结果的情况下,将where条件提前,减少后续数据的量。
Hive优化_第2张图片

#开启谓词下推
set hive.optimize.pdd=true;

3.矢量化查询优化

如下图,矢量化计算简单来说就是将每列数据看成一个列向量,之后进行向量的计算,此时只需要调用一个cpu的指令完成即可。
通过使用矢量化计算,可以减少对cpu指令的依赖,极大的提高了一些典型查询场景,如表扫描、过滤、聚合、和join等操作。
Hive优化_第3张图片

#开启矢量化查询
set hive.vectorized.execution.enable=true;

在这里插入图片描述

4.Fetch抓取优化

**Fetch抓取优化即对hive中的某些情况的查询,可以不去走mapreduce计算。**也就是说,对于一些简单的查询任务,可以不用将查询任务提交的yarn上去跑。

在这里插入图片描述
Hive优化_第4张图片

5.本地模式

Hive优化_第5张图片
Hive优化_第6张图片

6.并行执行

hive中的并行执行优化不是指的map或者reduce并行,而是指的是对sql转化的执行计划的每个stage的并行。通常来说这些能够并行执行的stage是互不依赖的。
Hive优化_第7张图片

7.严格模式

Hive优化_第8张图片
Hive优化_第9张图片

你可能感兴趣的:(大数据,hive,hadoop,数据仓库)