此文为翻译的文档,英文连接为
https://cwiki.apache.org/confluence/display/Hive/Design#Design-HiveArchitecture
Hive 查询流程图如下
图中可以看出查询主要组件包含
- UI(user interface) –用户提交查询或者其他操作,现在标准UI有CLI(command line interface),Thrift Serve,Hive web interface(HWI)。
- Driver(驱动) –负责接收查询及其他操作,Driver 实现了会话句柄的概念,并提供在基于JDBC / ODBC的execute和fetch API
- Compiler(编译器) – 解析查询的sql,对不同的块和不同的查询表达式进行语义分析,借助metastore中的表和分区的元数据定义生成执行计划。
- Metastore –存储所有表及分区的结构信息,包含列名,列的数据类型,读取和写入的序列化器和反序列化器以及相关的HDFS文件存储目录
- Execution Engine(执行引擎) –执行compiler所产生的执行计划。该执行计划是一个阶段的DAG,执行引擎关联执行计划中不同阶段的之间依赖,并负责在不同的系统组件中执行不同的阶段。
执行流程详细解析