【图文详细 】什么是Hive,深入浅出!

第一部分:Hive原理

为什么要学习Hive的原理

•一条Hive HQL将转换为多少道MR作业

•怎么样加快Hive的执行速度

•编写Hive HQL的时候我们可以做什么

•Hive 怎么将HQL转换为MR作业

•Hive会采用什么样的优化方式

Hive架构&执行流程

Hive执行流程

•编译器将一个Hive QL转换操作符

扫描二维码关注公众号,回复: 4297839 查看本文章

•操作符是Hive的最小的处理单元

•每个操作符代表HDFS的一个操作或者一道MapReduce作业

Operator

•Operator都是hive定义的一个处理过程

•Operator都定义有:

•protected List <Operator<?  extends Serializable >> childOperators; 

•protected List <Operator<?  extends Serializable >> parentOperators; 

•protected boolean done; // 初始化值为false

•所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作

Hive执行流程

操作符

描述

TableScanOperator

扫描hive表数据

ReduceSinkOperator

创建将发送到Reducer端的<Key,Value>对

JoinOperator

Join两份数据

SelectOperator

选择输出列

FileSinkOperator

建立结果数据,输出至文件

FilterOperator

过滤输入数据

GroupByOperator

GroupBy语句

MapJoinOperator

/*+mapjoin(t) */

LimitOperator

Limit语句

UnionOperator

Union语句

•Hive通过ExecMapper和ExecReducer执行MapReduce任务

•在执行MapReduce时有两种模式

•本地模式

•分布式模式

ANTLR词法语法分析工具

•ANTLR—Another Tool for Language Recognition

•ANTLR 是开源的

•为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架

•Hibernate就是使用了该分析工具

Hive编译器

 

 

  

编译流程

 

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/84309233