Hive系列 (十):Hive调优

Hive系列文章

Hadoop完全分布式搭建(腾讯云服务器+阿里云服务器)

Hive系列 (一):Hive搭建

Hive系列 (二):Hive基础知识

Hive系列 (三):Hive开窗函数详解

Hive系列 (四):自定义函数UDF UDTF UDAF

Hive系列 (五):Hive数据类型

Hive系列 (六):Hive数据类型转换

Hive系列 (七):Hive常用函数

Hive系列 (八):Hive中的explode 与 lateral view

Hive系列 (九):Hive数据存储

Hive系列 (十):Hive调优

一、Hive执行计划

Hive的底层就是MapReduce的编程实现,我们可以通过执行计划详细的了解执行过程。

语法结构

EXPLAIN [EXTENDED|DEPENDENCY|AUTHORIZATION] query

AUTHORIZATION 权限信息

在这里插入图片描述

DEPENDENCY是一些表信息描述

在这里插入图片描述

extended这个可以显示hql语句的语法树,其执行计划大致有三部分:

  • 这个语句的抽象语法树

  • 这个计划不同阶段之间的依赖关系

  • 对于每个阶段的详细描述

简单示例

简单查询:select * from myhive.stu;

在这里插入图片描述

展示执行计划

0: jdbc:hive2://master:10000> explain extended select class_id,sum(chinese) from myhive.stu_scores group by class_id;
OK

解读stage

一个Hive任务会包含一个或多个stage(阶段),不同的stage间会存在着依赖关系。

越复杂的查询通常会引入越多的stage,而stage越多就需要越多的时间时间来完成。

一个stage可以是一个Mapreduce任务,也可以是一个抽样阶段,或者一个合并阶段,还可以是一个limit阶段,以及Hive需要的其他某个任务的一个阶段。默认情况下,Hive会一次只执行一个stage,当然如果使用了并行执行,也可以同时执行几个stage。

 0: jdbc:hive2://master:10000> explain extended select class_id,sum(chinese) from myhive.stu_scores group by class_id;
OK
 STAGE DEPENDENCIES:   					-------显示各个依赖之间的关系                             
   Stage-1 is a root stage     			-------阶段一                     
   Stage-0 depends on stages: Stage-1   -------结束阶段,依赖阶段一             
                                                    
 STAGE PLANS:                                       
   Stage: Stage-1                                   
     Map Reduce                                     
       Map Operator Tree:                        -----Map阶段   
           TableScan                                
             alias: stu_scores                   -----扫描的表   
             Statistics: Num rows: 20 Data size: 453 Basic stats: COMPLETE Column stats: NONE  ----表信息
             GatherStats: false                     
             Select Operator                        
               expressions: chinese (type: int), class_id (type: string) 
               outputColumnNames: chinese, class_id 
               Statistics: Num rows: 20 Data size: 453 Basic stats: COMPLETE Column stats: NONE 
               Group By Operator                    
                 aggregations: sum(chinese)         
                 keys: class_id (type: string)      
                 mode: hash                         
                 outputColumnNames: _col0, _col1    ---临时字段
                 Statistics: Num rows: 20 Data size: 453 Basic stats: COMPLETE Column stats: NONE 
                 Reduce Output Operator             -----Reduce阶段
                   key expressions: _col0 (type: string) 
                   null sort order: a               
                   sort order: +                    
                   Map-reduce partition columns: _col0 (type: string) 
                   Statistics: Num rows: 20 Data size: 453 Basic stats: COMPLETE Column stats: NONE 
                   tag: -1                          
                   value expressions: _col1 (type: bigint) 
                   auto parallelism: false   
				   
       ######################################################################
	   #			内容较长,省略部分										  #
	   ######################################################################
	   
           File Output Operator                     
             compressed: false                      
             GlobalTableId: 0                       
             directory: hdfs://master:9000/user/hive/tmp/hadoop/ad61c2b3-eba3-4024-9737-b7fdc60ff795/hive_2021-09-07_15-02-16_276_8896242971391717266-1/-mr-10001/.hive-staging_hive_2021-09-07_15-02-16_276_8896242971391717266-1/-ext-10002 
             NumFilesPerFileSink: 1                 
             Statistics: Num rows: 10 Data size: 226 Basic stats: COMPLETE Column stats: NONE 
             Stats Publishing Key Prefix: hdfs://master:9000/user/hive/tmp/hadoop/ad61c2b3-eba3-4024-9737-b7fdc60ff795/hive_2021-09-07_15-02-16_276_8896242971391717266-1/-mr-10001/.hive-staging_hive_2021-09-07_15-02-16_276_8896242971391717266-1/-ext-10002/ 
             table:                                 
                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat 
                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat 
                 properties:                        
                   columns _col0,_col1              
                   columns.types string:bigint      
                   escape.delim \                   
                   hive.serialization.extend.additional.nesting.levels true 
                   serialization.escape.crlf true   
                   serialization.format 1           
                   serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe 
                 serde: org.apache.hadoop
  • 10
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值