hive架构及执行过程

hive架构

在这里插入图片描述

1.用户接口 Client

CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)

2.元数据 Metastore

用来存储hive的元数据

使用关系型数据库来存储元数据,默认存储在自带的derby数据库中,推荐使用mysql存储Metastore

hive的元数据包括:表名, 表所属数据库, 表的拥有者, 表的列, 表的分区, 表的属性(表是内部表还是外部表), 以及表数据所在的目录

3.Hadoop

使用hdfs进行存储,使用mapreduce进行计算

4.驱动器 Driver

(1).解析器 SQL Parser

解析器是将sql字符串解析成抽象语法树AST,对抽象语法树进行语法分析,比如表是否存在,字段是否存在,sql语义是否有误

(2).编译器 Physical Plan

编译器将抽象语法树AST编译成逻辑执行计划

(3).优化器 Query Optimizer

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

(4).执行器 Execution

将逻辑执行计划转换成可以运行的物理执行计划,mr或者是spark

hive执行过程

在这里插入图片描述

Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口

hivesql执行转换为mr

客户端将hql语句发送hive的驱动器driver

然后解析器将sql字符串解析成抽象语法树AST,进行词义语义分析,表是否存在,字段是否存在,语义是否错误.

然后编译器将抽象语法树抽象成查询块,将查询块编译成逻辑执行计划.

然后优化器对逻辑执行计划进行优化.

执行器将逻辑执行计划转化成物理执行计划,mr程序或者是spark程序,生成jar包,以及从元数据中获取表数据存储的目录,然后提交到hadoop中去执行,最后将结果返回给客户端.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值