暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

原创 | 大数据入门基础系列之Hive的驱动器(包括解释器、编译器、优化器、执行器)

大数据躺过的坑 2018-01-05
1300



温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。





点击上方 "大数据躺过的坑" 关注我们





在前面的博文里,我已经介绍了

大数据躺过的坑之2017年9月份所有微信公众号干货汇总

大数据躺过的坑之2017年10月份所有微信公众号干货汇总

大数据躺过的坑之2017年11月份所有微信公众号干货汇总

大数据躺过的坑之2017年12月份所有微信公众号干货汇总

原创 | 告别2017,迎接2018(九月哥)

2017,你可以偷偷给自己点个赞了

原创 | 大数据躺过的坑2018年的第一天(开启新的篇章)

原创 | 大数据入门基础系列之浅谈Hive和HBase的区别

【夜读】2018,愿我们记住18岁时的模样

原创 | 大数据入门基础系列之浅谈Hive的用户接口

【夜读】太多借口的人,过不好这一生

原创 | 大数据入门基础系列之详谈Hive的数据定义语言(DDL)








前言


    

原创 | 大数据入门基础系列之浅谈Hive的体系架构

      里,我已经谈及到了


驱动器:dirver

         包含、解析器、编译器、优化器、执行器

解析器

        将SQL字符串转换成抽象语法树AST,这一步一般都是用第三方工具库完成,比如antlr;对AST语法树进行分析,比如表否存在、字段是否存在、SQL语义是否有误。

编译器

        将AST编译生成逻辑执行计划。

优化器

        对逻辑执行计划进行优化。

执行器

        把逻辑执行计划转换成物理执行计划。对于hive来说,就是MR/TEZ/Spark;


        这里,我做个补充。



首先,普及几个概念

    •  用户接口:用户访问Hive的入口。

    • 元数据:Hive的用户信息与表的MetaData。

    •  解释器:分析翻译HQL的组件。

    •  编译器:编译HQL的组件。

    •  优化器:优化HQL的组件。



    • Driver调用编译器(compiler)处理HiveQL字串,这些字串可能是一条DDL、DML或查询语句。

    • 编译器将字符串转化为策略(plan)。

    • 策略仅由元数据操作和HDFS操作组成,元数据操作只包含DDL语句,HDFS操作只包含LOAD语句。

    • 对插入和查询而言,策略由map-reduce任务中的具有方向的非循环图(directedacyclic graph,DAG)组成。



    同时,

       Driver 调用解释器(Compiler)处理 HiveQL 字串,这些字串可能是一条 DDL、DML或查询语句。编译器将字符串转化为策略(plan)。策略仅由元数据操作 和 HDFS 操作组成,元数据操作只包含 DDL 语句,HDFS 操作只包含 LOAD 语句。对插入和查询而言,策略由 MapReduce 任务中的具有方向的非循环图(directedacyclic graph,DAG)组成。

       解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行。







Hive的驱动器包括解释器、编译器、优化器、执行器。

        1)  解析器(parser):将查询字符串转化为解析树表达式。

        2)  语义分析器(semantic analyzer):将解析树表达式转换为基于块(block-based)的内部查询表达式。

        3)  逻辑策略生成器(logical plan generator):将内部查询表达式转换为逻辑策略,这些策略由逻辑操作树组成。

        4)  优化器(optimizer):通过逻辑策略构造多途径并以不同方式重写。




   


Hive构建在Hadoop之上

(1)HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的。

(2)所有的数据都是存储在Hadoop中。

(3)查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table)。

(4)Hadoop和Hive都是用UTF-8编码的。





           后续的微信公众号博文  

               将分别剖析

        原创 | 大数据入门基础系列之Hive驱动器之解释器

        原创 | 大数据入门基础系列之Hive驱动器之编译器

        原创 | 大数据入门基础系列之Hive驱动器之优化器

        原创 | 大数据入门基础系列之Hive驱动器之执行器

        











同时,大可以关注我的个人博客

   http://www.cnblogs.com/zlslch/   和  http://www.cnblogs.com/lchzls/ 

http://www.cnblogs.com/sunnyDream/


       以及对应本平台的QQ群:161156071(大数据躺过的坑)








        本文版权归大数据躺过的坑)作者和微信公众平台共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,您可以通过下边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【点赞】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!

看完本文有收获?请转发分享给更多人

关注「大数据躺过的坑」,提升大神技能






觉得不错,请点赞和留言↓

文章转载自大数据躺过的坑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论