Hive-explain简要说明与介绍

explain

explain的作用

  • 帮助了解hive底层原理
  • 帮助hive调优
  • 排查数据倾斜

如何使用

使用语法

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

如何阅读explain说明

eg:

select sum(if(organ_id>1000,1,0)) from dwd_dm_organ ;

执行计划如下:

--执行计划的第一部分:表示阶段数量、阶段的依赖关系
--阶段:一个stage表示一个job(mr),或者一次move、者fetch操作
--表示0阶段依赖于1阶段
STAGE DEPENDENCIES:
  Stage-1 is a root stage
  Stage-0 depends on stages: Stage-1
--MR执行计划分为2个部分:
--Map Operator Tree MAP端的执行计划
--Reduce Operator Tree Reduce端的执行计划
STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Map Operator Tree:
          TableScan--读取数据,常见的属性 alias
            alias: dwd_dm_organ
            Statistics: Num rows: 195025 Data size: 3705475 Basic stats: COMPLETE Column stats: NONE
            Select Operator--查找操作
              expressions: organ_id (type: bigint)
              outputColumnNames: organ_id
              Statistics: Num rows: 195025 Data size: 3705475 Basic stats: COMPLETE Column stats: NONE
              Group By Operator --分组算子
              
                aggregations:--聚合函数 sum(if((organ_id > 1000), 1, 0))
                mode: hash --模式
                outputColumnNames: _col0
                Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                Reduce Output Operator --输出给reduce
                  sort order: --map端排序规则
                  Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                  value expressions: _col0 (type: bigint)
      Reduce Operator Tree:
        Group By Operator --分组算子
          aggregations: sum(VALUE._col0)
          mode: mergepartial --模式为合并部分聚合结果
          outputColumnNames: _col0
          Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
          File Output Operator --文件输出
            compressed: false
            Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
            table:
                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

  Stage: Stage-0
    Fetch Operator--客户端获取数据
      limit: -1
      Processor Tree:
        ListSink

常见的operator操作说明

  • TableScan 表扫描操作,一般出现在map读取数据阶段

    • 会包含查询的表和表的相关统计信息
  • Select Operator:查询/选取操作

    • 会包含查询的字段、输出的字段列名和表统计
  • Group By Operator:分组聚合操作

    • aggregations:会显示聚合函数
    • mode:聚合的模式
      • Hash
      • mergepartial 局部聚合
      • final 最终聚合
    • keys:分组字段
    • outputColumnNames:输出列
    • 其他表统计信息
  • Reduce Output Operator:输出到reduce

    • sort order
      • +:正序排序
      • -:倒叙排序
      • ±:第一列正序,第二列倒序
      • 空:值为空表示不排序
  • Fliter Operator:过滤操作

    • predicate:断言/过滤条件 如sql中的where
  • Map Join Operator:Join操作

    • condition map:join方式
    • keys:join条件
上一篇:CDH Error: Java heap space


下一篇:ResNet50网络结构图及结构详解