Hive 架构2025年2月12日 | 阅读 5 分钟  本文深入探讨了 Hive 架构的主题。首先,我们将快速介绍 Hive。 随后将彻底研究 Hive 架构及其基本要素。 此外,我们将观察 Hive 的实际运行情况。 Hive:它是什么?用于编写 Hive 应用程序的声明性语言称为 Hive 查询,它与 SQL 相关。 Hive 和 hive 查询用于创建 MapReduce 应用程序。 使用 hive 查询,复杂的 Java MapReduce 应用程序可以被结构化和半结构化数据处理和分析所取代。 如果您对 SQL 语句了解一二,编写 hive 查询确实非常简单。 Hive 平台有助于完成以下活动 以下架构解释了将查询提交到 Hive 的流程。  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 的主要功能列表 - 我们被允许免费使用 Apache Hive。 它是免费提供的。
- 使用 Hive 也可以处理保存在 Hadoop 分布式文件系统中的大型数据集。
- 数据可以被多个人同时查询。
- Apache Hive 程序很好地满足了 Apache Hadoop 的低级接口要求。
- Apache Hive 在表级别对数据进行分区和分桶,以提高速度。
- Hive 支持多种文件格式,如 textFile、orc、Avro、序列文件、parquet、复制、LZO 压缩等。
- SQL 是 Hadoop 使用的相同查询语言。 要使用 Hive,我们不需要精通任何编程语言。 我们只需要使用 Hive 的简单 SQL 即可。
- Hive 中有几个内置功能。
- Oracle BI 客户端开发人员工具包还支持用户定义函数,用于过滤和清理数据。 UDF 可以根据我们的需求定义。
- Apache Hive 支持外部表。 此功能允许我们在不实际将其放入 HDFS 的情况下处理数据。
- Hive 是一个快速、可扩展的工具,它使用了众所周知的概念。 它的核心特性是快速、可扩展且直观。
- Hive 是一种分布式数据仓库工具。 仓库的软件称为 Apache Warehouse。
- 关系数据库的表结构和 Hive 的表结构是相同的。
- ETL 是 hive 支持的一部分。 Hive 是一个有效的 ETL 工具。
- Hive 可以访问保存在 HDFS 和其他类似数据存储系统(如 HBase)中的文件。
- 在线分析处理,或 OLAP(在线分析处理),由 Hive 执行。
- 用 PHP、Python、Java、C++ 和 Ruby 构建的客户端应用程序可以在 Hive 上运行。
- Hive 中的优化器实现规则到逻辑计划中,以提高效率。
- 可以在 Hive 中执行临时查询,或松散编写的指令或搜索,其值取决于数据分析的某些变量。
- Tez 支持将 Hive 用于数据可视化。 通过将 Hive 与 Apache Tez 集成,可以获得实时处理能力。
不同的 Hive 方法 根据 Hadoop 数据节点的数量,hive 可以通过两种方式之一运行。 1. 当使用本地模式时 - 如果 Hadoop 在单个数据节点上以伪模式部署,我们可以在伪模式下执行 Hive。
- 只要数据量较小,我们就可以在这种模式下拥有一台机器的数据量。
- 由于小型数据集的处理速度,较小的数据集将在本地设备上快速处理。
2. 当使用 Map Reduce 模式时 - 这种配置中存在多个数据节点,数据分布在它们之间。 在这种情况下,使用 Hive。
- 它将能够同时管理多个查询和大量数据,以便快速处理它们。
- 通过使用此选项,您可以通过更有效地处理大型数据集来提高数据处理性能。
关于 Hive 架构的 MCQ1. 使用 Hive 创建的每个数据库都保存为 - 一个文件
- 一个 hdfs 块
- 一个目录
- 一个 jar 文件
答案:c 解释:每个数据库都变成一个目录,在该目录中,每个表都变成一个文件。
2. 使用 ________ 术语可以强制数据库删除,如果它有任何表,而无需删除表。 - CASCADE
- RESTRICT
- F DROP
- OVERWRITE
答案:a 解释:在删除数据库之前,使用 CASCADE 子句删除表。
3. 在 hive 中,STRUCT 列中的一个元素通过以下方式引用 - 索引
- dot
- 键
- colon (冒号)
答案:b 解释:点表示法用于访问 STRUCT 元素,STRUCT 元素是键值对。
4. 用 C++、Ruby 和其他语言开发的程序可以通过单个端口远程访问 Hive。 要执行此操作,可以使用 _________。 - HiveWeb
- HiveMetaStore
- HiveServer
- Hive Streaming
答案:c 解释:要远程访问 Hive,请使用 HiveServer 或 Hive Thrift 服务。
5. 关于视图可以修改什么? - 它所基于的查询
- 它的位置
- 它的 TBLPROPERTIES
- 它的名称
答案:c 解释:一些表文档,例如创建日期和时间,存储在 TBLPROPERTIES 中。
|