Hive的架构原理

一、客户端:Hive是Mapreduce的客户端,Hive的客户端有两种方式:
- CLI:命令行的方式
- JDBC:这种我们也可以通过java代码来实现,不过一般不这样做。
二、四个器
- 解析器:将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,解析器是对sql的语法,表是否存在,以及字段是否存在做检查,hql通过了解析器就说明语法上没有问题
- 编译器:根据AST生成执行计划
- 优化器:对逻辑执行计划进行优化
- 执行器:将逻辑执行计划转换为可以运行的物理计划,对于hive来说就是hadoop或者spark
三、Hive的类似于关系型数据库
- hive有自己的执行引擎,就是Mapreduce。
- hive存储数据使用的是hdfs
- hive的元数据存储的位置是关系型数据库
四、Hive的运行机制

- hive将结构化的数据存储在hdfs中
- hive通过sql语句创建出与hdfs中的元数据所对应的表信息,这些信息就是元数据metastore,是存储在关系型数据库当中的。然后通过映射关系关联元数据和结构化的数据
- 同时meta store中还记录着表对应文件的path,然后会生成hive中的metastore
文件的path,然后会生成hive中的metastore
- 解析器去根据路径查询hdfs中的数据,解析器还会将sql语言解析成对应的mapreduce程序,并且生成对应的jar包
相关文章: