Hive 和 HBase 的區別


Hive 和 HBase 都是基於 Hadoop 的大資料解決方案。這些技術在幾乎任何實際使用場景中都服務於不同的目的。當您登入 Facebook 時,您可能會看到您的朋友列表、新聞提要、廣告建議、朋友建議等。Twitter 也是如此。

Apache Hadoop 以及我們今天將探討的其他技術,例如 Apache Hive 與 Apache HBase,就是 Facebook 以一種可呈現的方式載入所有雜亂資料的方式。Apache Hadoop 使 Facebook 的 20 億多日活使用者成為可能。

由於大資料系統很複雜,因此所有技術必須一起使用。**Hive** 建議用於分析時間序列資料。它可以評估趨勢和網站日誌。不建議使用 Hive 進行即時查詢,因為結果可能需要一些時間。

HBase 是一個用於對大資料執行即時查詢的出色工具。

什麼是 HBase?

Hadoop 檔案系統支援面向列的 HBase 資料庫。這個開源專案可以在兩個方向上水平擴充套件。HBase 模仿了 Google 的大表。它允許對大量結構化資料進行隨機訪問。它使用 Hadoop 的容錯能力。它允許即時對 Hadoop 檔案系統資料進行任意讀寫訪問。可以將資料儲存在 HDFS 或 HBase 中。資料使用者使用 HBase 讀取 HDFS 資料。位於 Hadoop 上方的 HBase 提供讀/寫資料訪問。

一些**HBase 的特性**包括:

  • HBase 是專門針對低延遲操作而開發的。

  • HBase 在隨機讀寫操作部門有很多活動。

  • HBase 能夠以表格的形式儲存大量資訊。

  • HBase 能夠以表格的形式儲存大量資訊。

  • 在叢集環境中提供線性級別和模組化級別的可擴充套件性。

  • 讀寫操作必須嚴格遵守此原則。

  • 表資料的自動且可調整的分片

  • 對位於不同區域的伺服器提供自動故障轉移支援

  • 使支援 Hadoop Map 更方便的基礎類。

  • 減少 HBase 表中的作業數量。

HBase 的應用

HBase 在各個行業中有多種用途,包括醫療保健行業、電子商務業務和體育行業。例如:

  • HBase 用於醫療保健領域,用於儲存基因序列以及個人或整個地區的疾病歷史。

  • HBase 用於醫療保健領域,用於儲存基因序列以及個人或整個地區的疾病歷史。

  • 在體育界,HBase 是儲存比賽細節以及每場比賽歷史的首選資料庫。它利用這些事實來改進其預測。

什麼是 Hive?

Apache Hive 是一款開源資料倉庫軟體,用於讀取、寫入和管理 HDFS 或 Apache HBase 中的大型資料集檔案。Hive 允許 SQL 開發人員使用類似於 SQL 的 HQL 命令查詢和分析資料。它透過消除編寫 Java 程式碼的需要來簡化 MapReduce 程式設計。如果您使用 HQL 編寫查詢,Hive 將自動構建對映和減少函式。

一些**Hive 的特性**包括:

  • Hive 旨在僅搜尋和管理表中的結構化資料。

  • Hive 可擴充套件、快速且使用眾所周知的理念。

  • 模式儲存在資料庫中,處理後的資料儲存在 Hadoop 分散式檔案系統 (HDFS) 中

  • 首先建立表和資料庫,然後將資料放入正確的表中。

  • Hive 支援 ORC、SEQUENCEFILE、RCFILE 和 TEXTFILE 檔案格式。

Hive 由**三個核心部分**組成:

  • **Hive 客戶端** - Hive 為各種應用程式提供驅動程式。基於 Thrift 的應用程式可以使用 Thrift 客戶端進行通訊。

  • **Hive 服務** - Hive 服務使客戶端互動成為可能。Hive 服務處理客戶端的查詢。

  • **Hive 儲存和計算** Hive 的“元資料儲存資料庫”儲存表元資料。表資料和查詢結果儲存在 Hadoop 的 HDFS 叢集中。

HBase 和 Hive 之間的區別

下表重點介紹了 HBase 和 Hive 之間的主要區別:

比較依據
HBase
Hive
定義
HBase 是一個面向列的分散式資料庫,其基礎是 HDFS。它是一個開源的 NoSQL 資料庫,具有行和列。
Apache Hive 是一個基於 Hadoop 的開源資料倉庫。它搜尋和分析包含在 Hadoop 檔案中的結構化和半結構化資料。
功能
鍵值儲存,具有低延遲和對資料進行任意查詢的能力。資料以面向列的格式儲存。
這個查詢引擎類似於 SQL,是為大容量資料儲存庫而開發的。它相容多種檔案格式。
架構
HBase 是一個開源的 NoSQL 資料庫,執行在 Apache Hadoop 和 HDFS 上。這種可擴充套件的儲存可以容納無限的資料。
Hive 是一個基於 Map Reduce 的 SQL 引擎,構建在 HDFS 上。HQL 用於查詢 HDFS 資料(Hive 查詢語言)。
處理
事務處理(通常稱為 OLTP)是 HBase 使用的主要應用。但是,在 HBase 中,即時處理是可能的。
由於批處理是 Hive 的主要用途,因此它屬於 OLAP 類別。在 Hive 中,也無法執行即時處理。
資料型別
僅支援非結構化格式的資料。使用者定義從資料欄位名稱到 Java 支援的資料型別的對映。
允許儲存結構化和非結構化資料。提供對常見 SQL 資料型別(例如 INT、FLOAT 和 VARCHAR 等)的內建支援。
用途
HBase 建立了一個廉價、適應性和易於維護的基於 Hadoop 的 GIS(HBGIS)。稀疏大資料集的磁碟上列儲存格式。使用鍵值從大型資料集中提取隨機資料很容易。
Hive 對 PB 級 Hadoop 資料執行 SQL 查詢。它還提供了一種類似於 SQL 的查詢語言 HQL,用於查詢 Hadoop 節點資料。
延遲
最小,儘管可能不一致。由於 HBase 設計的結構限制,在承受強寫入需求時,可能會出現延遲峰值。
中等到高,具體取決於計算機的響應能力。分散式執行提供了比 RDBMS 等單一查詢系統更好的資料效能。

結論

儘管 HBase 和 Hive 都是基於 Hadoop 的資料倉庫,用於儲存和處理大量資料,但它們以非常不同的方式儲存和查詢資料。

HBase 是一個面向列的資料庫管理系統,用於儲存大量資料。它還允許您儲存稀疏資料集,這在許多大資料用例中很常見。

另一方面,Hive 更像是一個傳統的資料倉庫報表系統。它構建在 Hadoop 之上,用於按計劃執行處理作業,然後將結果載入到客戶端應用程式可以查詢的彙總表中。

更新於:2022 年 7 月 28 日

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.