返回

走进Apache Hive系统架构

人工智能

Hive,作为一款应用于Hadoop生态的明星产品,它的运作方式必然有着不同寻常之处。那么Apache Hive系统架构究竟是怎样的?它又是由哪些部分构成?每一部分又有着怎样的作用?如果想了解这些问题,那就跟随本文,一探究竟。

系统架构

Apache Hive系统的架构主要由五部分构成,分别是:

  1. 客户端Hive CLI/HiveServer/Hive JDBC/ODBC
  2. Hive metastore 服务
  3. Thrift Server
  4. Complier
  5. 执行引擎

这五部分共同构成了Hive的整个系统架构,各司其职,保障Hive软件的正常运行。

Hive CLI/HiveServer/Hive JDBC/ODBC

Hive提供了Hive CLI、HiveServer、Hive JDBC/ODBC三种类型的客户端。这些客户端工具用户能够以不同方式连接Hive进行操作,比如使用Hive CLI可以完成Hive SQL查询语句的提交和运行,而HiveServer能够提供远程连接服务,Hive JDBC/ODBC则能让用户通过标准的JDBC/ODBC访问Hive。

Hive Metastore 服务

Hive Metastore是一项储存信息的服务,它以关系型数据库的形式存放表的元数据信息。它类似于传统数据库中的系统表,用于对Hive对象进行管理和控制。

Thrift Server

Thrift Server是Hive与客户端通讯的一个桥梁。当Hive客户端提交作业时,作业会被发送到Thrift Server,然后由Thrift Server将其提交到执行引擎进行执行。

Complier

Complier是Hive系统中的一个非常关键的组件。它负责把HiveQL查询语句转化成MapReduce作业,然后由执行引擎来执行这些作业。

执行引擎

执行引擎负责将Complier转换后的MapReduce作业提交到Hadoop集群执行。Hive目前支持两种执行引擎:

  • MapReduce:这是Hive早期采用的执行引擎,虽然性能不那么出色,但胜在稳定可靠。
  • Tez:这是Hive目前默认使用的执行引擎,它比MapReduce拥有更好的性能,但稳定性略差。

各部分功能

除了了解Hive系统的架构组成之外,我们还需要对各个部分的功能进行更详细的了解。

客户端Hive CLI/HiveServer/Hive JDBC/ODBC

这三种客户端工具为用户提供了不同的连接方式,让用户可以自由选择最适合自己的方式连接Hive进行操作。

Hive Metastore 服务

Hive Metastore服务负责对Hive对象进行管理和控制,它将Hive对象的信息存储在关系型数据库中,从而确保Hive对象的安全性和可靠性。

Thrift Server

Thrift Server充当Hive与客户端通讯的桥梁,它负责接收客户端提交的作业,并将这些作业提交给执行引擎进行执行。

Complier

Complier是Hive系统中的一个重要组件,它将HiveQL查询语句转化为MapReduce作业,为执行引擎做好准备。

执行引擎

执行引擎是Hive系统中负责执行作业的组件,它将Complier转换后的MapReduce作业提交到Hadoop集群执行。

总结

以上就是对Apache Hive系统架构的详细介绍。Hive作为一个海量数据仓库软件,其系统架构非常复杂,但也是非常完善的。各个组件各司其职,共同保证了Hive的稳定性和高性能。