Kudu專注於大規模數據快速讀寫,同時進行快速分析的利器

速點鏈接加入高手戰隊:http://www.dajiangtai.com/course/112.do

Kudu是什麼

Kudu是一個分佈式列式存儲引擎/系統,由Cloudera開源後捐獻給Apache基金會很快成爲頂級項目。用於對大規模數據快速讀寫的同時進行快速分析。

官網:https://kudu.apache.org/

Kudu運行在一般的商用硬件上,支持水平擴展和高可用,集HDFS的順序讀和HBase的隨機讀於一身,同時具備高性能的隨機寫,以及很強大的可用性(單行事務,一致性協議),支持與Impala/spark計算引擎。

近年來Kudu的應用越來越廣泛,在阿里、小米、網易等公司的大數據架構中,Kudu 都有着不可替代的地位。

Kudu出現的背景

Kudu給人的感覺是HDFS+HBase的雜合體,爲什麼會出現呢?

在Kudu出現之前,需要爲不同形態的數據需要分別存儲以適應不同場景:

最終導致幾個問題:

(1)數據過度冗餘

數據需要存儲多份以支撐多個應用,這樣造成了存儲等資源的浪費。

(2)架構複雜導致開發、運維、測試成本高

同時維護多套存儲系統,架構複雜,開發、運維、測試成本相對較高。

(3)數據不一致容易誤解

多套數據由於程序bug或者其他原因很容易出現數據不一致的情況,往往會造成業務方的誤解。

爲了解決上述問題業界做了很多嘗試,例如HBase+Hive整合:

上述方案雖然在一定程度上起到了作用,但是依然改變不了HBase不適合高吞吐量離線大數據分析的事實。

所以Kudu一出現定位就是Fast Analytics on Fast Data,是一個既支持隨機讀寫、又支持 OLAP 分析的大數據存儲引擎:

從上圖可以看出,Kudu 是一個折中的產品,它平衡了隨機讀寫和批量分析的性能。從 KUDU 的誕生可以說明一個觀點:底層的技術發展很多時候都是上層的業務推動的,脫離業務的技術很可能是空中樓閣。

當然Kudu身上還有很多概念或者標籤,有分佈式文件系統(好比HDFS),有一致性算法(好比Zookeeper),有Table(好比Hive Table),有Tablet(好比Hive Table Partition),有列式存儲(好比Parquet),有順序和隨機讀取(好比HBase),所以看起來kudu是一個輕量級的 HDFS +Zookeeper + Hive + Parquet + HBase,除此之外,kudu還有自己的特點,快速寫入+讀取,使得kudu+impala非常適合OLAP場景,尤其是Time-series場景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章