大数据入门基础系列之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/

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

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

觉得不错,请点赞和留言

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105G111ZJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券