![](https://csdnimg.cn/release/download_crawler_static/89110750/bg5.jpg)
本文档来自公众号:五分钟学大数据
5 / 21
input format: org.apache.hadoop.mapred.SequenceFileInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputF
ormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Stage: Stage-0
Fetch Operator
limit: -1
Processor Tree:
ListSink
看完以上内容有什么感受,是不是感觉都看不懂,不要着急,下面将会详细讲解
每个参数,相信你学完下面的内容之后再看 explain 的查询结果将游刃有余。
一个 HIVE 查询被转换为一个由一个或多个 stage 组成的序列(有向无环图 DAG)。
这些 stage 可以是 MapReduce stage,也可以是负责元数据存储的 stage,也可以
是负责文件系统的操作(比如移动和重命名)的 stage。
我们将上述结果拆分看,先从最外层开始,包含两个大的部分:
1. stage dependencies: 各个 stage 之间的依赖性
2. stage plan: 各个 stage 的执行计划
先看第一部分 stage dependencies ,包含两个 stage,Stage-1 是根 stage,
说明这是开始的 stage,Stage-0 依赖 Stage-1,Stage-1 执行完成后执行
Stage-0。
再看第二部分 stage plan,里面有一个 Map Reduce,一个 MR 的执行计划分为
两个部分:
1. Map Operator Tree: MAP 端的执行计划树
2. Reduce Operator Tree: Reduce 端的执行计划树
这两个执行计划树里面包含这条 sql 语句的 operator:
1. TableScan:表扫描操作,map 端第一个操作肯定是加载表,所以就是表扫
描操作,常见的属性:
alias: 表名称
Statistics: 表统计信息,包含表中数据条数,数据大小等
2. Select Operator: 选取操作,常见的属性 :
expressions:需要的字段名称及字段类型
outputColumnNames:输出的列名称
Statistics:表统计信息,包含表中数据条数,数据大小等
3. Group By Operator:分组聚合操作,常见的属性: