通过Parser将HiveQL转换成AST,通过Semantic Analyzer将AST转换为QB,通过Logical Plan Generator将QB转换成Operator Tree,通过Logical Optimizer对Operator Tree进行优化,通过Physical Plan Generator将Operator Tree转换为Tast Tree,最后通过Physical Optimizer对Task Tree进行优化

1、Parser:将HiveQL字符串转换为Parse Tree的形式

2、Semantic Analyzer:将Parse Tree转换为查询块QB,并填充元数据

3、Logical Plan Generator:转换成一系列的逻辑执行计划,也就是逻辑操作符构成的树 Operator Tree

4、Logical Optimizer:执行一些特定的优化算法并改写Operator Tree

5、Physical Plan Generator:将逻辑执行计划切分、改写成为物理执行计划(如M\R、Tez作业)

6、Physical Optimizer:优化物理执行计划,如Auto Map Join

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。

如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。

如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【刘超★ljc】。

本文版权归作者,禁止转载,否则保留追究法律责任的权利。

Hive Compiler过程的更多相关文章

  1. Hadoop之hive安装过程以及运行常见问题

    Hive简介 1.数据仓库工具 2.支持一种与Sql类似的语言HiveQL 3.可以看成是从Sql到MapReduce的映射器 4.提供shall.Jdbc/odbc.Thrift.Web等接口 Hi ...

  2. Hive学习之路 (二十)Hive 执行过程实例分析

    一.Hive 执行过程概述 1.概述 (1) Hive 将 HQL 转换成一组操作符(Operator),比如 GroupByOperator, JoinOperator 等 (2)操作符 Opera ...

  3. Hive(九)Hive 执行过程实例分析

    一.Hive 执行过程概述 1.概述 (1) Hive 将 HQL 转换成一组操作符(Operator),比如 GroupByOperator, JoinOperator 等 (2)操作符 Opera ...

  4. Hive(六)hive执行过程实例分析与hive优化策略

    一.Hive 执行过程实例分析 1.join 对于 join 操作:SELECT pv.pageid, u.age FROM page_view pv JOIN user u ON (pv.useri ...

  5. Ubuntu hive 安装过程中遇到的一些问题

    环境:Ubuntu14.04 Hadoop3.2.0 MySQL5.7 hive2.3.6 安装步骤:安装hive.MySQL并进行配置 安装过程参照:Ubuntu安装hive,并配置mysql作为元 ...

  6. Hive 安装过程中的问题

    org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0. ...

  7. hive配置过程中出现的一个问题

    执行hive里面的insert语句的时候,报错,执行失败查看hadoop的日志文件之后发现错误的详细信息如下: 把hdfs-site.xml中的hadoop.tmp.dir这个属性添加到core-si ...

  8. Hive使用过程中的坑

    在Hive脚本中如果有 use db; #即使用数据库 最后一定要有一个exit;脚本,退出hive窗口 否则运行到最后,hive无法启动MR任务,只是卡在打印完成hive脚本处. 例子如下: $Hi ...

  9. 数据中台解析Hive SQL过程

    一.数据中台解析SQL的目的: 数据中台需要对外提供数据特征查询的能力,因此中台查找并解析各个平台的sql,找出哪些表中的字段经常被使用,以便沉淀为特征,而我们要做的是找出sql中的数据表及其字段.以 ...

随机推荐

  1. C# 实现将 PDF 转文本的功能

    更新 2014年2月27日: 这篇文章最初只描述使用 PDFBox 来解析PDF文件.现在它已经被扩展到包括使用 IFilter 和 iTextSharp 的例程了. 这篇文章和对应的Visual S ...

  2. 纯CSS(无 JavaScript)实现的响应式图像显示

    有许多方法可以实现web页面里图像的应答.然而,我碰到的所有方案都使用了JavaScript.这使我疑惑不用JavaScript实现图像响应是否可行. 我提出了下面纯CSS的方案. 它是如何工作的呢? ...

  3. SQL 服务没有及时响应启动或控制请求”的解决方法

        解决方法很简单:卸载删除跟IIS相关的几个漏洞安全更新补丁即可,包括KB939373.KB2290570和KB2124261.卸载微软安全更新补丁的方法:打开控制面板的“添加删除程序”面板,勾 ...

  4. Nicescroll滚动条插件的用法

    Nicescroll滚动条插件是一个非常强大的基于jQuery的滚动条插件,不需要增加额外的css,几乎全浏览器兼容.ie6+,实现只需要一段代码,侵入性非常小,样式可完全自定义,支持触摸事件,可在触 ...

  5. C++对C的改进(1)

    本文地址:http://www.cnblogs.com/archimedes/p/cpp-change1.html,转载请注明源地址 新的初始化方法 C提供的初始化方法 int x = 1024; C ...

  6. 使用Js获取和更改FCKeditor编辑器里的内容

    之前在一个系统里使用了FCKeditor编辑器,由于项目需求需要在FCKeditor里添加一个自定义的按钮用于实现自己的需求 主要是在点击该按钮时删除或添加FCKeditor编辑器里的内容 其实是一个 ...

  7. WeifenLuo.WinFormsUI.Docking添加关闭功能

    /****************************************************************** * 创建人:HTL * 创建时间:2014-7-8 15:37: ...

  8. C#中Split用法~字符串分隔

    1.用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray= ...

  9. IOS-UITableView入门(3)

    UITableView本身自带了(增.删)编辑功能: 1.仅仅要调用UITableView的编辑代码 就会进入编辑状态: [self.tableView setEditing:!self.tableV ...

  10. C#基础视频教程3.2 常见控件类型和使用方法

    这一部分我们介绍如何使用第三方的控件,我们前面一节介绍了使用微软提供的官方控件,比较中规中矩,而且也不用担心稳定性.但是很多时候我们还是会希望用第三方的控件让自己的软件更美观,更独特. 就单纯的按钮, ...