Hbase和Hive的特點,和應用場景

neuyu發表於2021-09-09

Hbase是什麼?

Hbase是一個架構在Hdfs檔案系統上的列式儲存,是開源的,分散式,面向列的資料庫。適合於非結構化資料儲存的資料庫。

Hbase是一個高可靠、高效能、面向列、可伸縮的分散式儲存系統,可以在廉價的PC Server搭建大規模結構化儲存叢集.

1,HBase位於Hadoop生態系統的結構化儲存層。

圖片描述

image

2,HDFS作為其底層的檔案儲存

3,MapReduct為Hbase提供高效能的計算能力

4,Zookeeper為HBase提供了穩定的服務和failover的能力

圖片描述

image

Hive是什麼?

hive是一個基於Hadoop的一個資料倉儲工具。可以將結構化資料對映為一張資料庫表,並且提供sql的查詢能力,可以將sql換換為MapReduce任務進行。

下面我們看看Hive的架構圖:

1,使用者介面,hive主要有三個介面,CLI(CLI啟動的時候會同時氣筒一個Hive的副本),Client(hive的客戶端,連結hive server),web UI(透過瀏覽器訪問)

2,後設資料儲存,hive將後設資料儲存在資料庫中如:mysql。

3,Driver(直譯器、編譯器、最佳化器、執行器):完成詞法分析,語法分析,最佳化,編譯,最佳化以及查詢計劃的生成,隨後由MapReduce使用。

4,Hadoop ,hive的資料儲存在Hdfs中。大部分的查詢由MapReduce完成。

圖片描述

image

Hbase

上面我們分別看了Hbase的特點,hive的特點,那麼Hbase和Hive的差別是什麼以及各自的使用場景是什麼?

Hbase和Hive 二者都是以Hdfs為檔案儲存。

Hbase支援列擴充套件,可以對單元格修改。採取K-V的設計,因此查詢效率比較高,一般用於延遲忍耐低的場景;還有就是經常需要擴充套件屬性,修改屬性場景。

Hbase的查詢一般透過命令視窗進行,語句比較負責,但是hive的採用標準的sql語法,門檻低,上手簡單。當然Hbase也有Phoenix可以去支援 sql這樣的語法操作。

下面看看hbase具體的應用場景:

千萬併發、PB儲存、KV基礎儲存、動態列、強同步、稀疏表、二級索引、SQL

圖片描述

image

物件儲存:頭條類、新聞類的的新聞、網頁、圖片儲存在HBase之中,一些病毒公司的病毒庫也是儲存在HBase之中。

時序資料:HBase之上有OpenTSDB模組,可以滿足時序類場景的需求。

推薦畫像:使用者的畫像,是一個比較大的稀疏矩陣。螞蟻的風控就是構建在HBase之上。

時空資料:主要是軌跡、氣象網格之類,滴滴叫車的軌跡資料主要存在HBase之中,另外在技術所有大一點的資料量的車聯網企業,資料都是存在HBase之中

CubeDB OLAP:Kylin一個cube分析工具,底層的資料就是儲存在HBase之中,不少客戶自己基於離線計算構建cube儲存在hbase之中,滿足線上報表查詢的需求。

訊息/訂單:在電信領域、銀行領域,不少的訂單查詢底層的儲存,另外不少通訊、訊息同步的應用構建在HBase之上。

訊息/訂單:在電信領域、銀行領域,不少的訂單查詢底層的儲存,另外不少通訊、訊息同步的應用構建在HBase之上。

Hive 不能支援列擴充套件,支援追加,好像在新版本中可以支援修改,但是效率比較低。Hive處理的資料的吞吐量高,檔案越大,hive的優勢就約明顯。一半用於 延遲忍耐高的場景。

下面再來看看Hive的具體使用場景:

1,分析網路日誌。

2,ETL清洗資料。

3,構建資料倉儲。

4,資料探勘

最後在總結:Hbase和Hive本身都不能儲存資料。二者都是對Hdfs上的檔案在做了一次組織。從而適應不同的場景。Hbase 在與查詢,動態列場景更有優勢,但是無法進行資料分析和挖掘。二Hive本身無法在低延遲的場景下使用。Hive可以處理大量資料的ETL清洗。構建統一的標準的資料倉儲,從而提供基礎資料,共上層資料分析。所以hive更加偏向於資料分析。



作者:資料僧
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4550/viewspace-2819596/,如需轉載,請註明出處,否則將追究法律責任。

相關文章