Hive 架构

2025年2月12日 | 阅读 5 分钟
Hive Architecture

本文深入探讨了 Hive 架构的主题。首先,我们将快速介绍 Hive。 随后将彻底研究 Hive 架构及其基本要素。 此外,我们将观察 Hive 的实际运行情况。

Hive:它是什么?

用于编写 Hive 应用程序的声明性语言称为 Hive 查询,它与 SQL 相关。 Hive 和 hive 查询用于创建 MapReduce 应用程序。

使用 hive 查询,复杂的 Java MapReduce 应用程序可以被结构化和半结构化数据处理和分析所取代。 如果您对 SQL 语句了解一二,编写 hive 查询确实非常简单。

Hive 平台有助于完成以下活动

  • 大规模数据分析
  • 执行临时查询
  • 执行数据封装

以下架构解释了将查询提交到 Hive 的流程。

Hive Architecture

Hive 客户端

Hive 允许使用各种语言编写应用程序,包括 Java、Python 和 C++。 它支持不同类型的客户端,例如:-

  • Thrift Server - 这是一个跨语言服务提供程序平台,它服务于所有支持 Thrift 的编程语言的请求。
  • JDBC 驱动程序 - 它用于在 Hive 和 Java 应用程序之间建立连接。 JDBC 驱动程序存在于类 org.apache.hadoop.hive.jdbc.HiveDriver 中。
  • ODBC 驱动程序 - 它允许支持 ODBC 协议的应用程序连接到 Hive。

Hive 服务

以下是 Hive 提供的服务:-

  • Hive CLI - Hive CLI(命令行界面)是一个 shell,我们可以在其中执行 Hive 查询和命令。
  • Hive Web 用户界面 - Hive Web UI 只是 Hive CLI 的替代方案。 它提供了一个基于 Web 的 GUI,用于执行 Hive 查询和命令。
  • Hive MetaStore - 这是一个中央存储库,用于存储仓库中各种表和分区的全部结构信息。 它还包括列及其类型信息的元数据、用于读写数据的序列化器和反序列化器,以及存储数据的相应 HDFS 文件。
  • Hive Server - 它被称为 Apache Thrift Server。 它接受来自不同客户端的请求,并将其提供给 Hive Driver。
  • Hive Driver - 它接收来自不同来源的查询,如 Web UI、CLI、Thrift 和 JDBC/ODBC 驱动程序。 它将查询传输到编译器。
  • Hive 编译器 - 编译器的目的是解析查询并对不同的查询块和表达式执行语义分析。 它将 HiveQL 语句转换为 MapReduce 作业。
  • Hive 执行引擎 - 优化器以 map-reduce 任务和 HDFS 任务的 DAG 形式生成逻辑计划。 最后,执行引擎按照它们之间的依赖关系顺序执行传入的任务。

Hive 的特点

以下是 Apache Hive 的主要功能列表

  1. 我们被允许免费使用 Apache Hive。 它是免费提供的。
  2. 使用 Hive 也可以处理保存在 Hadoop 分布式文件系统中的大型数据集。
  3. 数据可以被多个人同时查询。
  4. Apache Hive 程序很好地满足了 Apache Hadoop 的低级接口要求。
  5. Apache Hive 在表级别对数据进行分区和分桶,以提高速度。
  6. Hive 支持多种文件格式,如 textFile、orc、Avro、序列文件、parquet、复制、LZO 压缩等。
  7. SQL 是 Hadoop 使用的相同查询语言。 要使用 Hive,我们不需要精通任何编程语言。 我们只需要使用 Hive 的简单 SQL 即可。
  8. Hive 中有几个内置功能。
  9. Oracle BI 客户端开发人员工具包还支持用户定义函数,用于过滤和清理数据。 UDF 可以根据我们的需求定义。
  10. Apache Hive 支持外部表。 此功能允许我们在不实际将其放入 HDFS 的情况下处理数据。
  11. Hive 是一个快速、可扩展的工具,它使用了众所周知的概念。 它的核心特性是快速、可扩展且直观。
  12. Hive 是一种分布式数据仓库工具。 仓库的软件称为 Apache Warehouse。
  13. 关系数据库的表结构和 Hive 的表结构是相同的。
  14. ETL 是 hive 支持的一部分。 Hive 是一个有效的 ETL 工具。
  15. Hive 可以访问保存在 HDFS 和其他类似数据存储系统(如 HBase)中的文件。
  16. 在线分析处理,或 OLAP(在线分析处理),由 Hive 执行。
  17. 用 PHP、Python、Java、C++ 和 Ruby 构建的客户端应用程序可以在 Hive 上运行。
  18. Hive 中的优化器实现规则到逻辑计划中,以提高效率。
  19. 可以在 Hive 中执行临时查询,或松散编写的指令或搜索,其值取决于数据分析的某些变量。
  20. Tez 支持将 Hive 用于数据可视化。 通过将 Hive 与 Apache Tez 集成,可以获得实时处理能力。

不同的 Hive 方法

Hive Architecture

根据 Hadoop 数据节点的数量,hive 可以通过两种方式之一运行。

1. 当使用本地模式时

  • 如果 Hadoop 在单个数据节点上以伪模式部署,我们可以在伪模式下执行 Hive。
  • 只要数据量较小,我们就可以在这种模式下拥有一台机器的数据量。
  • 由于小型数据集的处理速度,较小的数据集将在本地设备上快速处理。

2. 当使用 Map Reduce 模式时

  • 这种配置中存在多个数据节点,数据分布在它们之间。 在这种情况下,使用 Hive。
  • 它将能够同时管理多个查询和大量数据,以便快速处理它们。
  • 通过使用此选项,您可以通过更有效地处理大型数据集来提高数据处理性能。

关于 Hive 架构的 MCQ

1. 使用 Hive 创建的每个数据库都保存为

  1. 一个文件
  2. 一个 hdfs 块
  3. 一个目录
  4. 一个 jar 文件

答案:c

解释:每个数据库都变成一个目录,在该目录中,每个表都变成一个文件。


2. 使用 ________ 术语可以强制数据库删除,如果它有任何表,而无需删除表。

  1. CASCADE
  2. RESTRICT
  3. F DROP
  4. OVERWRITE

答案:a

解释:在删除数据库之前,使用 CASCADE 子句删除表。


3. 在 hive 中,STRUCT 列中的一个元素通过以下方式引用

  1. 索引
  2. dot
  3. colon (冒号)

答案:b

解释:点表示法用于访问 STRUCT 元素,STRUCT 元素是键值对。


4. 用 C++、Ruby 和其他语言开发的程序可以通过单个端口远程访问 Hive。 要执行此操作,可以使用 _________。

  1. HiveWeb
  2. HiveMetaStore
  3. HiveServer
  4. Hive Streaming

答案:c

解释:要远程访问 Hive,请使用 HiveServer 或 Hive Thrift 服务。


5. 关于视图可以修改什么?

  1. 它所基于的查询
  2. 它的位置
  3. 它的 TBLPROPERTIES
  4. 它的名称

答案:c

解释:一些表文档,例如创建日期和时间,存储在 TBLPROPERTIES 中。


下一主题Hive 安装