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