zoukankan      html  css  js  c++  java
  • hiveSql 执行计划

    大致流程:

    1、客户端连接hiveserver2(目前大叔多通过beeline连接,hive cli模式相对较重,且直接略过元数据)建立回话

    2、提交sql,通过driver进行编译,解析,优化逻辑计划,生成物理计划

    3、对物理计划执行优化,并提交到计算引擎

    4、返回结果

    详细流程

    1、 客户端提交查询语句,被driver处理,转交给编译器进行解析,得到UNresolved Logical plan

    ParseDriver parse

    2、Antlr 定义SQL语法规则,完成语法,语法解析,将SQL抽象成AST Tree

    将SQL进一步抽象结构化 Semantic Analyzer analyze

    3、 遍历AST Tree,抽象出查询的基本组成单元QueryBlock

    应用HCatalog SemanticAnalyzer.getPlan

    4、遍历QueryBlock,编译成OperatorTree

    逻辑优化 Optimizer.optimize

    5、 逻辑优化OperatorTree,合并不必要的ReduceSinkOperator,减少不必要的shuffle

    生成DAG TaskCompiler.genearteTaskTree

    6、 遍历OperatorTree,编译成MR任务

    改写DAG进行优化 TaskCompiler.optimizeTaskPlan

    7、 物理层优化器对MR进行转换

    顺序/并发执行Task Task.excute

    8、 物理计划执行

  • 相关阅读:
    java 死锁
    阿里云 zookeeper
    spring 单元测试
    java hashmap分段锁实现
    java lambda 列表生成列表
    springAOP简介
    spring IOC小知识点
    spring中相互依赖的问题
    linux学习02-虚拟机安装CentOS之后联网
    linux学习01-虚拟机VirtualBox上安装centos7,小白第一步
  • 原文地址:https://www.cnblogs.com/choice7/p/15554344.html
Copyright © 2011-2022 走看看