基本 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 小時的嚴格學習和頂級公司的就業幫助。
快樂學習!