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

第一部分:Hive原理

为什么要学习Hive的原理

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

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

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

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

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

Hive架构&执行流程

Hive执行流程

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

•操作符是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编译器

 

 

  

编译流程

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值