在前面的博文里,我已经介绍了
在前面的博文里,我已经介绍了
Hive的执行原理
Hive的执行原理
Hive构建在Hadoop之上
(1) HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的
(2) 所有的数据都是存储在Hadoop中
(3) 查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table)
(4) Hadoop和Hive都是用UTF-8编码的
Hive编译器将一个Hive QL转换操作符。操作符Operator是Hive的最小的处理单元,每个操作符代表HDFS的一个操作或者一道MapReduce作业。Operator都是hive定义的一个处理过程,其定义有:
protected List
protected List
protected boolean done; // 初始化值为false
所有的操作构成了Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作。
Hive QL的操作符
操作符如下:
TableScanOperator:扫描hive表数据
ReduceSinkOperator:创建将发送到Reducer端的对
JoinOperator:Join两份数据
SelectOperator:选择输出列
FileSinkOperator:建立结果数据,输出至文件
FilterOperator:过滤输入数据
GroupByOperator:GroupBy语句
MapJoinOperator:/*+mapjoin(t) */
LimitOperator:Limit语句
UnionOperator:Union语句
Hive通过ExecMapper和ExecReducer执行MapReduce任务。在执行MapReduce时有两种模式,即本地模式和分布式模式 。
http://www.cnblogs.com/zlslch/和http://www.cnblogs.com/lchzls/
看完本文有收获?请转发分享给更多人
关注「大数据躺过的坑」,提升大神技能
觉得不错,请点赞和留言
本文来自企鹅号 - 好记性不如烂笔头干货媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - 好记性不如烂笔头干货媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。