Hive EXPLAIN 执行计划解析

ops/2024/10/20 5:54:53/

Hive EXPLAIN 执行计划解析

EXPLAIN 语法

Hive提供了一个EXPLAIN命令,用于显示查询的执行计划。该语句的语法如下:

EXPLAIN [EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE] query 

在EXPLAIN语句中使用EXTENDED会提供关于计划中运算符的额外信息。这通常是物理信息,如文件名。
Hive查询会转换为一系列(更像是有向无环图)阶段。这些阶段可以是map/reduce阶段,也可以是执行元数据存储库或文件系统操作(如移动和重命名)的阶段。解释输出分为三个部分:

  • 查询的抽象语法树
  • 计划中不同阶段之间的依赖关系
  • 每个阶段的描述

阶段本身的描述显示了一系列运算符及与运算符相关的元数据。元数据可能包括FilterOperator的过滤表达式、SelectOperator的选择表达式或FileSinkOperator的输出文件名等内容。


EXPLAIN 示例:
EXPLAIN
INSERT OVERWRITE TABLE dest_g1
SELECT src.key, sum(substr(src.value, 4))
FROM src
GROUP BY src.key;

这个SQL查询的作用是从表src中选择key字段,并对每个key对应的value字段进行截取后求和,然后将结果插入到目标表dest_g1中。输出结果包含以下两部分:依赖图每个阶段的计划

//依赖图
STAGE DEPENDENCIES:Stage-1 is a root stageStage-2 depends on stages: Stage-1Stage-0 depends on stages: Stage-2
//这显示了Stage-1是根阶段,Stage-2在Stage-1完成后执行,Stage-0在Stage-2完成后执行。
//每个阶段的计划
STAGE PLANS:Stage: Stage-1Map ReduceAlias -> Map Operator Tree:srcReduce Output Operatorkey expressions:expr: keytype: stringsort order: +Map-reduce partition columns:expr: rand()type: doubletag: -1value expressions:expr: substr(value, 4)type: stringReduce Operator Tree:Group By Operatoraggregations:expr: sum(UDFToDouble(VALUE.0))keys:expr: KEY.0type: stringmode: partial1File Output Operatorcompressed: falsetable:input format: org.apache.hadoop.mapred.SequenceFileInputFormatoutput format: org.apache.hadoop.mapred.SequenceFileOutputFormatname: binary_tableStage: Stage-2Map ReduceAlias -> Map Operator Tree:/tmp/hive-zshao/67494501/106593589.10001Reduce Output Operatorkey expressions:expr: 0type: stringsort order: +Map-reduce partition columns:expr: 0type: stringtag: -1value expressions:expr: 1type: doubleReduce Operator Tree:Group By Operatoraggregations:expr: sum(VALUE.0)keys:expr: KEY.0type: stringmode: finalSelect Operatorexpressions:expr: 0type: stringexpr: 1type: doubleSelect Operatorexpressions:expr: UDFToInteger(0)type: intexpr: 1type: doubleFile Output Operatorcompressed: falsetable:input format: org.apache.hadoop.mapred.TextInputFormatoutput format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormatserde: org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDename: dest_g1Stage: Stage-0Move Operatortables:replace: truetable:input format: org.apache.hadoop.mapred.TextInputFormatoutput format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormatserde: org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDename: dest_g1

在本示例中有2个map/reduce阶段(Stage-1和Stage-2)和1个与文件系统相关的阶段(Stage-0)。Stage-0基本上将结果从临时目录移动到与表dest_g1对应的目录。
排序顺序表示在排序中使用的键表达式的列数。每个“+”表示一个按升序排序的列,每个“-”表示一个按降序排序的列。

一个map/reduce阶段本身有两部分:
从表别名到Map Operator Tree的映射 - 这个映射告诉mapper应调用哪个操作树来处理特定表或先前map/reduce阶段结果的行。在上面的示例中,Stage-1中src表的行由Reduce Output Operator根的操作树处理。类似地,在Stage-2中,Stage-1结果的行由另一个Reduce Output Operator根的操作树处理。这些Reduce Output Operator根据元数据的标准将数据分区到reducer。
Reduce Operator Tree - 这是处理map/reduce作业的reducer上的所有行的操作树。例如,在Stage-1中,Reducer Operator Tree执行部分聚合,而Stage-2中的Reducer Operator Tree从Stage-1中拿到计算的部分聚合后计算最终聚合。

Hive执行计划官方文档https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Explain


http://www.ppmy.cn/ops/22187.html

相关文章

Bentley二次开发教程28-交互窗口-案例实战2-EC属性赋值工具

EC属性赋值工具 该工具会根据用户输入的路径获取Schema文件的路径,然后通过路径读取对应的Schema文件并在树状图中显示EC类,当用户选择树状图上的节点时,此时会触发事件,根据EC属性添加用户自定义控件用于显示EC属性并可对其进行…

electron 数据持久化方案

在 Electron 应用中实现数据持久化的方案多种多样,主要取决于你的具体需求,比如数据的大小、安全性要求、以及是否需要与云端同步等。以下是几种常见的数据持久化方法: 本地文件存储: JSON 文件:对于配置信息或小量数据…

ZooKeeper 环境搭建详细教程之三(真集群)

ZooKeeper 搭建详细步骤之三(真集群) ZooKeeper 搭建详细步骤之二(伪集群模式) ZooKeeper 搭建详细步骤之一(单机模式) ZooKeeper 及相关概念简介 真集群搭建 搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。 以下是一个简…

Java23种设计模式-结构型模式之桥接模式

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。 通常以下角色: 角色1.抽象类(Abstraction):定义抽象接口。 角色2.扩展抽象类(Refin…

SQL基础(关系模型)

目录 SQL及定义域概念 SQL是什么 定义域 关系简介 关系的定义 关系的封闭性 关系模型简介 关系模型 谓词逻辑 运算基础 SQL的加减乘除 SQL的除法1 SQL的除法2 SQL的除法3 三值逻辑 NULL的危害 消除NULL SQL及定义域概念 SQL是什么 Structured Query Languag…

秋招后端开发面试题 - Java多线程(上)

目录 Java多线程前言面试题线程和进程?说说线程有几种创建方式?为什么调用 start() 方法时会执行 run() 方法,那怎么不直接调用 run() 方法?线程有哪些常用的调度方法?线程有几种状态?守护线程了解吗&#…

浅析扩散模型与图像生成【应用篇】(十七)——LDM

17. High-Resolution Image Synthesis with Latent Diffusion Models 该文首次提出在潜在特征空间中的扩散模型LDM,也是大名鼎鼎的Stable Diffusion(SD)模型的基础。不同于之前的扩散模型直接在图像维度上进行扩散和去噪,LDM首先训…

word 表格 文字 上下居中

问题 word 表格 文字 上下居中 详细问题 笔者进行word 文档编辑,对于表格中的文本内容,如何进行上下居中? 解决方案 步骤1、选中需要进行操作的单元格 步骤2、右键 → \rightarrow →点击表格属性 步骤3、依次点击单元格 → \rightar…