Hive explain执行计划详解

Hive explain执行计划详解,第1张

Hive explain执行计划详解 Hive explain执行计划详解
explain select click_url, count(*) ct from bigtable group by click_url;
--一个Hive任务会包含一个或者多个stage,不同stage间会存在依赖关系。越复杂的查询会stage越多,耗时也越多。
--一个stage可以是一个MapReduce任务,也可以是一个抽象阶段或者合并阶段,还可以是一个limit阶段,以及Hive需要的其它某个任务的一个阶段。默认情况下,Hive一次只执行一个stage,不过也可以并行执行。

Explain
STAGE DEPENDENCIES: ---------------------------显示各阶段的依赖关系
  Stage-1 is a root stage  --------------------stage1是根阶段
  Stage-0 depends on stages: Stage-1  ---------stage0依赖于stage1,结束阶段

STAGE PLANS:  --------------------------各个stage的执行计划
  Stage: Stage-1
    Map Reduce
      Map Operator Tree:  --------------map阶段执行计划
          TableScan  -------------------表扫描,读取数据
            alias: bigtable ------------扫描的表名(有别名则显示别名)
            Statistics: Num rows: 1291573 Data size: 129157328 Basic stats: COMPLETE Column stats: NONE  ----统计信息,例如一个表有多少行,多少个分区,列的直方图等重要信息。
            --统计信息用于查询优化。将统计信息作为输入,通过成本优化函数,可以方便地比较不同查询方案,并从中选择最优的执行计划。
            --Filter Operator:where过滤条件筛选数据,描述有具体筛选条件和行数、大小等
            Select Operator  -----------筛选 *** 作,expressions中有列名、类型,输出类型、大小等。
              expressions: click_url (type: string)
              outputColumnNames: click_url
              Statistics: Num rows: 1291573 Data size: 129157328 Basic stats: COMPLETE Column stats: NONE
              Group By Operator  -------分组聚合 *** 作
                aggregations: count()
                keys: click_url (type: string)  -----用于分组的列,没有keys属性时只有一个分组
                mode: hash  ------------hash映射分组
                outputColumnNames: _col0, _col1  ----输出列名,使用的默认固定别名_col0,_col1
                Statistics: Num rows: 1291573 Data size: 129157328 Basic stats: COMPLETE Column stats: NONE
                Reduce Output Operator  ----map端的reduce,进行本地计算,然后按列映射到对应的reduce。对减少数据有很大作用。
                  key expressions: _col0 (type: string)  -------------map阶段的输出字段(临时字段)
                  sort order: +  -------------------------------------正序排序
                  ---------------------------------------------------(-):反向排序
                  ---------------------------------------------------(++):如果有两列,按两列正序排序
                  ---------------------------------------------------(+-):如果有两列,按两列正反序排序
                  Map-reduce partition columns: _col0 (type: string)
                  Statistics: Num rows: 1291573 Data size: 129157328 Basic stats: COMPLETE Column stats: NONE
                  value expressions: _col1 (type: bigint)
      Reduce Operator Tree:  -----------------------reduce阶段
        Group By Operator
          aggregations: count(VALUE._col0)
          keys: KEY._col0 (type: string)
          mode: mergepartial  -----mergepartial指合并map的计算结果
          outputColumnNames: _col0, _col1
          Statistics: Num rows: 645786 Data size: 64578613 Basic stats: COMPLETE Column stats: NONE
          File Output Operator  ----输出结果到临时文件中,
            compressed: false
            Statistics: Num rows: 645786 Data size: 64578613 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  --------------------没有limit语句,stage0没有任何 *** 作,只提取数据
      Processor Tree:
        ListSink

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5700596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存