基本 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 大數據高級證書課程