大数据离线处理—Hive入门学习:explain执行计划的理解
张军 2018-03-28 来源 : 阅读 2107 评论 0

摘要:我们都知道,hive在执行的时候会把所对应的SQL语句都会转换成mapreduce代码执行,但是具体的MR执行信息我们怎样才能看出来呢?这里就用到了explain的关键字,他可详细的表示出在执行所对应的语句所对应的MR代码。语法格式如下。extended关键字可以更加详细的列举出代码的执行过程。

我们都知道,hive在执行的时候会把所对应的SQL语句都会转换成mapreduce代码执行,但是具体的MR执行信息我们怎样才能看出来呢?这里就用到了explain的关键字,他可详细的表示出在执行所对应的语句所对应的MR代码。语法格式如下。extended关键字可以更加详细的列举出代码的执行过程。

[sql] view plain copy

1.  EXPLAIN [EXTENDED|DEPENDENCY|AUTHORIZATION] query  


        explain会把查询语句转化成stage组成的序列,主要由三方面组成:

        1:查询的抽象语法树

        2:plane中各个stage的依赖情况

        3:每个阶段的具体描述:描述具体来说就是显示出对应的操作算子和与之操作的对应的数据,例如查询算子,filter算子,fetch算子等等。下面我来看一个具体的例子:

[sql] view plain copy
1.  explain    
2.  from emp insert overwrite table emp_explain    
3.  select job,sum(substr(emp.sal,4))    
4.  group by emp.job;  
5.

会出现如下的信息:表示如上的代码呗划分成为3个stage。并且stage是一个根stage,stage0依赖于stage1,stage2依赖于stage0。具体表示的是每个stage的依赖信息。

大数据离线处理—Hive入门学习:explain执行计划的理解

[sql] view plain copy
1.  STAGE PLANS:  
2.    Stage: Stage-1  
3.      Map Reduce  
4.        
5.        Map Operator Tree://       
6.            TableScan  
7.              alias: emp//表示对emp表格进行操作  
8.              Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE  
9.              Select Operator  //select算子操作  
10.               expressions: job (type: string), sal (type: double)//select对应的数据类型  
11.               outputColumnNames: job, sal  
12.               Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE  
13.               Group By Operator//  group by  算子  
14.                 aggregations: sum(substr(sal, 4))//聚合操作  
15.                 keys: job (type: string)  
16.                 mode: hash  
17.                 outputColumnNames: _col0, _col1//聚合输出的数据  
18.                 Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE  
19.                 Reduce Output Operator  
20.                   key expressions: _col0 (type: string)  
21.                   sort order: +  
22.                   Map-reduce partition columns: _col0 (type: string)  
23.                   Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE  
24.                   value expressions: _col1 (type: double)  
25.       Reduce Operator Tree:  
26.         Group By Operator  
27.           aggregations: sum(VALUE._col0)  
28.           keys: KEY._col0 (type: string)  
29.           mode: mergepartial  
30.           outputColumnNames: _col0, _col1  
31.           Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE  
32.           Select Operator  
33.             expressions: _col0 (type: string), UDFToInteger(_col1) (type: int)  
34.             outputColumnNames: _col0, _col1  
35.             Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE  
36.             File Output Operator  
37.               compressed: false  
38.               Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE  
39.               table:  
40.                   input format: org.apache.hadoop.mapred.TextInputFormat  
41.                   output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat  
42.                   serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe  
43.                   name: emp_dept.emp_explain  
44.   
45.   Stage: Stage-0  
46.     Move Operator  
47.       tables:  
48.           replace: true  
49.           table:  
50.               input format: org.apache.hadoop.mapred.TextInputFormat  
51.               output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat  
52.               serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe  
53.               name: emp_dept.emp_explain  
54.   
55.   Stage: Stage-2  
    Stats-Aggr Operator//聚合操作


本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

10年项目开发经验,精通pc、mobile平台软件开发主流技术和框架

  • 7
    文章
  • 2110
    人气
  • 85%
    受欢迎度

已有20人表明态度,85%喜欢该老师!

进入TA的空间
名师指导 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
大数据之Kafka Consumer端的一些解惑
经验技巧 100% 的用户喜欢
大数据离线处理—hive实用教学
经验技巧 0% 的用户喜欢
大数据离线处理—Hive实战
经验技巧 0% 的用户喜欢
大数据离线处理—hive的性能调优
经验技巧 0% 的用户喜欢
大数据离线处理—hive动态分区
经验技巧 0% 的用户喜欢
其他海同名师 更多>>
刘新华
刘新华 联系TA
实力型。激情饱满,对专业充满热情
吴翠红
吴翠红 联系TA
独创“教、学、练、测”循环教学模式
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
黄泽民
黄泽民 联系TA
擅长javase核心技术
程钢
程钢 联系TA
擅长大型企业商业网站开发和管理
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:13167058313
小职老师的微信号:13167058313

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

站长统计