基本 Hive 面试问答 2022
已发表: 2021-01-08大数据访谈可以按照一般路线进行(您必须对流行的大数据框架和工具有一个大致的了解),或者他们可能专注于特定的框架或工具。 今天,我们将重点介绍一种广泛使用的大数据框架——Apache Hive。
我们创建了这个 Apache Hive 面试问题列表,以帮助您更好地了解雇主在 Hadoop 面试中通常会问的与 Hive 有关的问题。
所以,如果你是一个希望完成 Hive 面试的人,请继续阅读直到最后!
- 什么是 Apache Hive?
Apache Hive 是一个建立在 Hadoop 之上的数据仓库框架。 它主要用于分析结构化和半结构化数据。 Hive 旨在对数据进行结构投影并执行用 HQL(Hive 查询语言)编写的查询,类似于 SQL 语句。 此外,Hive 编译器将这些查询转换为 map-reduce 作业。
- Hive 可以支持哪些类型的应用程序?
Hive 可以支持任何用 Python、Java、C++、Ruby 和 PHP 编写的应用程序。
- Metastore 是什么意思? 为什么 Hive 不将元数据存储在 HDFS 中?
Metastore 是 Hive 中存储元数据信息的存储库。 它通过利用 RDBMS 以及称为 Data Nucleus 的开源 ORM(对象关系模型)层来实现,该层将对象表示转换为关系模式,反之亦然。

Hive 使用 RDBMS 而不是 HDFS 存储元数据信息,因为使用 HDFS 进行读/写操作是一个耗时的过程。 RDBMS 比它有一个优势,因为它有助于实现低延迟。
- 区分本地元存储和远程元存储。
本地元存储在运行 Hive 服务的同一 JVM 中运行。 它可以连接到在同一台机器或远程机器上的单独 JVM 中运行的数据库。 相反,远程元存储在单独的 JVM 中运行,而不是在运行 Hive 服务的地方。
- Hive 中的分区是什么意思? 它的重要性是什么?
在 Hive 中,表被分类并组织成分区,以根据列或分区键将相似类型的数据组织在一起。 所以,分区实际上是表目录中的一个子目录。 对于特定分区,一个表可能有多个分区键。
通过分区,您可以在 Hive 表中实现粒度。 这有助于减少查询延迟,因为它只扫描相关的分区数据而不是整个数据集。
- 什么是 Hive 变量?
Hive 变量是在 Hive 脚本语言开发的 Hive 环境中创建的。 使用 source 命令,它会在查询开始执行时将值传输到配置单元查询。
- Hive适合什么样的数据仓库应用?
Hadoop 和 HDFS 的设计规范对 Hive 的能力施加了一定的限制。 此外,它不具备 OLTP(在线事务处理)所需的必要功能。 Hive 最适合海量数据集中的数据仓库应用程序,这些应用程序需要:
- 分析相对静态的数据。
- 更少的响应时间。
- 数据没有动态变化。
- 什么是 Hive 索引?
Hive 索引是一种 Hive 查询优化方法。 它用于加快对 Hive 数据库中特定列或列集的访问。 通过使用 Hive 索引,数据库系统不需要读取表中的所有行来查找所选数据。
- 为什么需要 Hcatolog?
与外部系统共享数据结构需要 Hcatalog。 它提供对 Hive 元存储的访问,因此您可以将数据读/写到 Hive 数据仓库。
- 命名 Hive 查询处理器的组件?
Hive 查询处理器的组件是:

- 生成的逻辑计划。
- 一代的物理计划。
- 执行引擎。
- UDF 和 UDAF。
- 运营商。
- 优化器。
- 解析器。
- 语义分析器。
- 类型检查。
- ORC 格式表如何帮助 Hive 提升性能?
使用 ORC(优化行列)文件格式,您可以有效地存储 Hive 数据,因为它有助于简化 Hive 文件格式的众多限制。
- 对象检查器的功能是什么?
在 Hive 中,Object-Inspector 有助于分析行对象的内部结构和列的各个结构。 此外,它还提供了访问可以以不同格式存储在内存中的复杂对象的方法。
- Hive 和 HBase 有什么区别?
Hive 和 HBase 之间的主要区别点是:

- Hive 是一个数据仓库框架,而 HBase 是一个 NoSQL 数据库。
- 虽然 Hive 可以运行大多数 SQL 查询,但 HBase 不允许 SQL 查询。
- Hive 不支持对表进行记录级插入、更新和删除操作,但 HBase 支持这些功能。
- Hive 运行在 MapReduce 之上,但 HBase 运行在 HDFS 之上。
- 什么是托管表和外部表?
在托管表中,如果您离开/退出托管表,元数据信息和表数据都会从 Hive 仓库目录中删除。 但是,在外部表中,只有与表关联的元数据信息被删除,而表数据保留在 HDFS 中。
- 命名 Hive 架构的不同组件。
Hive 架构有 5 个组件:
- 用户界面——它允许用户向 Hive 系统提交查询和其他操作。 用户界面支持 Hive Web UI、Hive 命令行和 Hive HD Insight。
- 驱动程序——它为查询创建一个会话句柄,然后将查询发送到编译器以创建相同的执行计划。
- Metastore -它包含结构化数据以及仓库中不同表和分区的所有信息(带有属性)。 收到元数据请求后,它将元数据发送给编译器以执行查询。
- 编译器——它生成执行计划来解析查询,对不同的查询块进行语义分析,并生成查询表达式。
- 执行引擎——当编译器制定执行计划时,执行引擎执行它。 它管理计划各个阶段的依赖关系。
显然,Hive 不仅仅是这 15 个问题。 这些只是帮助您轻松学习 Hive 的基本概念。
如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
快乐学习!