基本 Hive 面试问答 2022

已发表: 2021-01-08

大数据访谈可以按照一般路线进行(您必须对流行的大数据框架和工具有一个大致的了解),或者他们可能专注于特定的框架或工具。 今天,我们将重点介绍一种广泛使用的大数据框架——Apache Hive。

我们创建了这个 Apache Hive 面试问题列表,以帮助您更好地了解雇主在 Hadoop 面试中通常会问的与 Hive 有关的问题。

所以,如果你是一个希望完成 Hive 面试的人,请继续阅读直到最后!

  1. 什么是 Apache Hive?

Apache Hive 是一个建立在 Hadoop 之上的数据仓库框架。 它主要用于分析结构化和半结构化数据。 Hive 旨在对数据进行结构投影并执行用 HQL(Hive 查询语言)编写的查询,类似于 SQL 语句。 此外,Hive 编译器将这些查询转换为 map-reduce 作业。

  1. Hive 可以支持哪些类型的应用程序?

Hive 可以支持任何用 Python、Java、C++、Ruby 和 PHP 编写的应用程序。

  1. Metastore 是什么意思? 为什么 Hive 不将元数据存储在 HDFS 中?

Metastore 是 Hive 中存储元数据信息的存储库。 它通过利用 RDBMS 以及称为 Data Nucleus 的开源 ORM(对象关系模型)层来实现,该层将对象表示转换为关系模式,反之亦然。

Hive 使用 RDBMS 而不是 HDFS 存储元数据信息,因为使用 HDFS 进行读/写操作是一个耗时的过程。 RDBMS 比它有一个优势,因为它有助于实现低延迟。

  1. 区分本地元存储和远程元存储。

本地元存储在运行 Hive 服务的同一 JVM 中运行。 它可以连接到在同一台机器或远程机器上的单独 JVM 中运行的数据库。 相反,远程元存储在单独的 JVM 中运行,而不是在运行 Hive 服务的地方。

  1. Hive 中的分区是什么意思? 它的重要性是什么?

在 Hive 中,表被分类并组织成分区,以根据列或分区键将相似类型的数据组织在一起。 所以,分区实际上是表目录中的一个子目录。 对于特定分区,一个表可能有多个分区键。

通过分区,您可以在 Hive 表中实现粒度。 这有助于减少查询延迟,因为它只扫描相关的分区数据而不是整个数据集。

  1. 什么是 Hive 变量?

Hive 变量是在 Hive 脚本语言开发的 Hive 环境中创建的。 使用 source 命令,它会在查询开始执行时将值传输到配置单元查询。

  1. Hive适合什么样的数据仓库应用?

Hadoop 和 HDFS 的设计规范对 Hive 的能力施加了一定的限制。 此外,它不具备 OLTP(在线事务处理)所需的必要功能。 Hive 最适合海量数据集中的数据仓库应用程序,这些应用程序需要:

  • 分析相对静态的数据。
  • 更少的响应时间。
  • 数据没有动态变化。
  1. 什么是 Hive 索引?

Hive 索引是一种 Hive 查询优化方法。 它用于加快对 Hive 数据库中特定列或列集的访问。 通过使用 Hive 索引,数据库系统不需要读取表中的所有行来查找所选数据。

  1. 为什么需要 Hcatolog?

与外部系统共享数据结构需要 Hcatalog。 它提供对 Hive 元存储的访问,因此您可以将数据读/写到 Hive 数据仓库。

  1. 命名 Hive 查询处理器的组件?

Hive 查询处理器的组件是:

  • 生成的逻辑计划。
  • 一代的物理计划。
  • 执行引擎。
  • UDF 和 UDAF。
  • 运营商。
  • 优化器。
  • 解析器。
  • 语义分析器。
  • 类型检查。
  1. ORC 格式表如何帮助 Hive 提升性能?

使用 ORC(优化行列)文件格式,您可以有效地存储 Hive 数据,因为它有助于简化 Hive 文件格式的众多限制。

  1. 对象检查器的功能是什么?

在 Hive 中,Object-Inspector 有助于分析行对象的内部结构和列的各个结构。 此外,它还提供了访问可以以不同格式存储在内存中的复杂对象的方法。

  1. Hive 和 HBase 有什么区别?

Hive 和 HBase 之间的主要区别点是:

  • Hive 是一个数据仓库框架,而 HBase 是一个 NoSQL 数据库。
  • 虽然 Hive 可以运行大多数 SQL 查询,但 HBase 不允许 SQL 查询。
  • Hive 不支持对表进行记录级插入、更新和删除操作,但 HBase 支持这些功能。
  • Hive 运行在 MapReduce 之上,但 HBase 运行在 HDFS 之上。
  1. 什么是托管表和外部表?

在托管表中,如果您离开/退出托管表,元数据信息和表数据都会从 Hive 仓库目录中删除。 但是,在外部表中,只有与表关联的元数据信息被删除,而表数据保留在 HDFS 中。

  1. 命名 Hive 架构的不同组件。

Hive 架构有 5 个组件:

  1. 用户界面——它允许用户向 Hive 系统提交查询和其他操作。 用户界面支持 Hive Web UI、Hive 命令行和 Hive HD Insight。
  2. 驱动程序——它为查询创建一个会话句柄,然后将查询发送到编译器以创建相同的执行计划。
  3. Metastore -它包含结构化数据以及仓库中不同表和分区的所有信息(带有属性)。 收到元数据请求后,它将元数据发送给编译器以执行查询。
  4. 编译器——它生成执行计划来解析查询,对不同的查询块进行语义分析,并生成查询表达式。
  5. 执行引擎——当编译器制定执行计划时,执行引擎执行它。 它管理计划各个阶段的依赖关系。

显然,Hive 不仅仅是这 15 个问题。 这些只是帮助您轻松学习 Hive 的基本概念。

如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。

快乐学习!

引领数据驱动的技术革命

超过 400 小时的学习时间。 14 种语言和工具。 IIIT-B 校友身份。
IIIT Bangalore 大数据高级证书课程