Apache Hive 初學者終極教程:從零開始學習 Hive

已發表: 2020-03-20

Apache Hive 是一個建立在 Hadoop 之上的開源數據倉庫系統。 它用於查詢和分析存儲在 Hadoop 文件中的大型數據集。 Apache Hive 教程將幫助您了解其基礎知識、特徵和用法。

在數字時代,每天產生大約 2.5 萬億字節的數據。 我們需要創新技術來遏制這種數據爆炸。 而 Hive 就是這樣一種工具,可以在行業領先的 Hadoop 生態系統中處理結構化和半結構化數據。 隨著越來越多的雇主尋求利用大數據的能力,他們正在尋找精通 Hadoop 工具的人。 因此, Hadoop Hive 教程對於初學者來說是任何大數據課程的重要組成部分。

目錄

什麼是蜂巢? 用通俗的話來解釋。

Apache Hive 允許開發人員匯總數據、運行查詢和分析大型數據集。 它建立在 Hadoop 分佈式文件系統 (HDFS) 之上,通過將數據組織成表來為數據帶來更多結構。 此外,Hive 使用其 HiveQL 或 HQL 語言對數據執行類似 SQL 的查詢。

雖然 SQL 在傳統數據庫上執行,但 HQL 可以自動將查詢轉換為 MapReduce 作業。 Hive 通過將 SQL 查詢轉換為要在 Hadoop 集群上執行的一系列作業來抽象 Hadoop 的複雜性。 因此,要掌握 Apache Hive,您需要對 SQL 有基本的了解。 但是沒有必要學習Java。

繼續我們的Apache Hive 教程,讓我們討論它在現代工作環境中的用途。

為什麼需要使用 Hive?

傳統的數據庫系統無法處理當今大數據應用程序生成的大量數據。 而Hadoop就是解決這個問題的框架。 各種工具幫助 Hadoop 模塊,Hive 就是其中之一。 使用 Apache Hive,您可以執行以下任務:

  • 可以對錶進行分區和分桶,從而可以處理存儲在 Hadoop 分佈式文件系統 (HDFS) 中的數據。 表直接在 HDFS 中定義
  • JDBC/ODBC 驅動程序可用於與傳統技術集成
  • 提供模式靈活性和演變以及數據匯總,促進更輕鬆的分析
  • 使您免於編寫複雜的 Hadoop MapReduce 作業
  • 分區和桶的概念可實現快速數據檢索
  • 對於 SQL 開發人員來說非常容易學習和實現
  • 快速且可擴展的系統
  • Hive 支持不同類型的文件,例如 Text 文件、Sequence 文件、RC 文件、ORF 文件、Parquet 文件和 AVRO 文件

Hive 架構的主要組件是什麼?

1.用戶界面:允許您提交查詢、處理指令和管理指令。 命令行界面 (CLI) 和 Web UI 允許外部用戶連接 Hive。

2. Metastore:顧名思義,Metastore 保存了數據庫的元數據。 它包含有關表的方案和位置的信息。 它還存儲分區元數據。 存在於傳統的關係型數據庫上,它可以讓您監控集群中的分佈式數據。 它跟踪數據、複製數據並提供備份。

3. 驅動程序:它是流程引擎中接收 HiveQL 語句的部分。 驅動程序創建會話以執行語句並監控其生命週期。 它還存儲語句執行期間生成的元數據。

4. 編譯器:這部分 HiveQL 流程引擎將查詢轉換為 MapReduce 輸入,例如抽象語法樹 (AST) 和有向無環圖 (DAG)

5. 優化器: Hive 架構的這個組件在執行計劃中執行轉換以提供優化的 DAG。 它拆分任務以獲得更好的性能。

6. Executor:它調度或流水線任務以完成執行過程。 為此,它與 Hadoop 作業跟踪器交互。

閱讀:面向初學者的 Hadoop 教程

如果不討論這些 Hive 組件如何相互交互以執行查詢,則Apache Hive 教程是不完整的。 因此,我們列出了以下步驟。

第 1 步:用戶在 CLI 或 Web UI 中輸入查詢,然後將查詢轉發給驅動程序。

第 2 步:驅動程序將查詢傳遞給編譯器進行檢查。 編譯器確保語法的準確性。

第 3 步:編譯器向 Metastore 請求所需的元數據,以便繼續進行。

Step 4:編譯器收到元數據後,將執行計劃重新發送給驅動程序。

第 5 步:驅動程序將此計劃轉發給執行引擎。

第 6 步:執行引擎執行最後階段。 它將任務發送到 Hadoop 的 MapReduce 模塊中的 JobTracker(名稱節點)。

步驟 7: JobTracker 進一步將任務分配給 TaskTracker(數據節點)。

第 8 步:查詢被執行並發回執行器。

第 9 步:執行器將結果發送給驅動程序。

第 10 步:驅動程序將結果轉發到 Hive 的用戶界面。

閱讀:印度的 Hadoop 開發人員薪水

你對蜂巢殼了解多少?

Hive Shell 允許用戶運行 HQL 查詢。 它是 Hive 的命令行界面。 您可以在兩種模式下運行 Hive Shell:

  • 非交互式:使用 -f 選項指定包含 HQL 查詢的文件的位置。 例如,配置單元 -f my-script.q
  • 交互式:直接進入 Hive Shell 並手動提交查詢以獲取結果。 比如$bin/hive,去hive shell

列出 Hive 的一些限制

  • 它提供有限的子查詢支持
  • Hive 查詢具有高延遲
  • Apache Hive 中不允許物化視圖
  • 它不提供實時查詢、行級更新、更新和刪除操作
  • Apache Hive 不適合在線過渡進程或 OLTP

加起來

在這個Hadoop Hive 教程中,我們介紹了 Hive 的不同方面、它的用法和架構。 我們還深入研究了它的工作原理並討論了它的局限性。 所有這些信息將幫助您開始您的 Hive 學習之旅。 畢竟,它是使用最廣泛、最值得信賴的大數據框架之一!

如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

引領數據驅動的技術革命

7 案例研究和項目。 頂級公司的工作協助。 敬業的學生導師。
IIIT Bangalore 大數據高級證書課程