Hadoop数据仓库框架-Hive v3.1.2系统架构

Hive 系统架构

下图显示了 Hive 的主要组成模块。

Hadoop数据仓库框架-Hive v3.1.2系统架构

1、用户接口: shell/CLI, jdbc/odbc, webui Command Line Interface

CLI,Shell 终端命令行(Command Line Interface),采用交互形式使用 Hive 命令行与 Hive 进行交互,最常用(学习,调试,生产)。

JDBC/ODBC,是 Hive 基于 JDBC 操作提供的客户端,用户(开发员,运维人员)通过这连接至 Hive server 服务。

Web UI,通过浏览器访问 Hive。

2、跨语言服务 : thrift server 提供了一种能力

让用户可以使用多种不同的语言来操纵hive。

Thrift 是 Facebook 开发的一个软件框架,可以用来进行可扩展且跨语言的服务的开发, Hive 集成了该服务,能让不同的编程语言调用 Hive 的接口。


3、底层的Driver: 驱动器Driver,编译器Compiler,优化器Optimizer,执行器Executor

Driver 组件完成 HQL 查询语句从词法分析,语法分析,编译,优化,以及生成逻辑执行计划的生成。生成的逻辑执行计划存储在 HDFS 中,并随后由 MapReduce 调用执行。

Hive 的核心是驱动引擎, 驱动引擎由四部分组成:

(1) 解释器:解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)

(2) 编译器:编译器是将语法树编译为逻辑执行计划

(3) 优化器:优化器是对逻辑执行计划进行优化

(4) 执行器:执行器是调用底层的运行框架执行逻辑执行计划


4、元数据存储系统 : RDBMS MySQL

元数据,通俗的讲,就是存储在 Hive 中数据的描述信息。

Hive 中的元数据通常包括:表的名字,表的列和分区及其属性,表的属性(内部表和外部表),表的数据所在目录。

Metastore 默认存在自带的 Derby 数据库中。缺点就是不适合多用户操作,并且数据存储目录不固定。数据库跟着 Hive 走,极度不方便管理。

解决方案:通常存我们自己创建的 MySQL 库(本地或远程)。Hive 和 MySQL 之间通过 MetaStore 服务交互。

获取更多Hadoop、HDFS、HBase、MapReduce、YARN、Hive等等技术内容,可访问Hadoop大数据技术专栏。


分享到:


相關文章: