Hive体系结构
用户接口
CLI:Cli 启动的时候,会同时启动一个Hive 副本。
JDBC客户端:封装了Thrift,java应用程序,可以通过指定的主机和端口连接到在另一个进程中运行的hive服务器
ODBC客户端:ODBC驱动允许支持ODBC协议的应用程序连接到Hive。
WUI 接口:是通过浏览器访问Hive
Thrift服务器:
基于socket通讯,支持跨语言。Hive Thrift服务简化了在多编程语言中运行Hive的命令。绑定支持C++,Java,PHP,Python和Ruby语言。
解析器
编译器:完成HQL 语句从词法分析、语法分析、编译、优化以及执行计划的生成。
优化器:是一个化组件,当前它的规则是:列修剪,谓词下压。
执行器会顺序执行所有的Job。如果Task链不存在依赖关系,可以采用并发执行的方式执行Job。
元数据库:
Hive的数据由两部分组成:数据文件和元数据。元数据用于存放Hive库的基础信息,它存储在关系数据库中,如mysql、derby。元数据包括:数据库信息、表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等
Hive也用数据库,不过只将元数据存储在数据库中,数据存储在HDFS数据仓库中。
分区<