Hive的原理—— 深入浅出学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    extends Serializable >> childOperators; 
?protected List    extends Serializable >> parentOperators; 
?protected boolean done; // 初始化值为false
?所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作
 
Hive执行流程
操作符
描述
TableScanOperator
扫描hive表数据
ReduceSinkOperator
创建将发送到Reducer端的对
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编译器
 
 
 
 
编译流程
 
第二部分:一条HQL引发的思考
案例HQL
?select key from test_limit  limit 1
?Stage-1
?TableScan Operator>Select Operator-> Limit->File Output Operator
?Stage-0
?Fetch Operator
?读取文件
MapperInputFormat
?该hive MR作业中指定的mapper是:
?mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
?input format是:
?hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
?该hive MR作业中指定的mapper是:
?mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
?input format是:
?hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 

更多内容:http://sishuok.com/forum/blogPost/list/6232.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29361362/viewspace-1062317/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29361362/viewspace-1062317/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值