Hive 架构
包含的组件:
- SQL Parser解析器
- Physical Plan 编译器
- Query Optimizer 优化器
- Execution 执行器
驱动器:Driver
解析器(SQL parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如 antlr;对AST进行语法分析,比如表是否存在,字段是否存在、sql语义是否有误。
编译器(Physical Plan):将AST编译生成逻辑执行计划
优化器(Query Optimizer):对逻辑执行计划进行优化
执行器(Executor):把逻辑执行计划转换成可以运行的物理计划。对于hive来说,就是执行MR/Spark任务
元数据:MetaStore
元数据包括:表名、表所属的数据库,表的拥有者,列 分区字段、表的类型
是否是外部表,表的数据所在目录等。
默认存储在自带的Derby数据库中,推荐使用MySQL存储Metastore
依赖Hadoop
使用HDFS进行存储,使用MR/Spark进行计算
Hive 的运行机制
用户创建table -->
通过映射关系向表中导数据 -->
- 数据文件存储在HDFS
- Metastore中记录着Hive中的元数据