大數據hadoop組件工具,HBase的入門與使用

長久以來,對大數據的實時檢索一直都是非常困難的問題。想要達到這個目的,首先就必須將需要查詢的所有數據都存儲下來。如果採用傳統的關係型數據庫來存儲的話,其查詢會非常緩慢,並且不利於擴展。因此需要尋找一種能夠實現實時讀寫、實時訪問的海量數據存儲方法,這時HBase就誕生了

大數據hadoop組件工具,HBase的入門與使用

HBase是一種構建在HDFS之上的分佈式、面向列的存儲系統。它的理論基礎是基於Google的三大論文之一——Google Bigtable。另外兩大論文分別為Google FS和MapReduce,對應Hadoop中的Hdfs分佈式文件存儲系統和MapReduce分佈式計算框架。

HBase總的來說具有四大優勢,分別為高可靠性、高性能、面向列存儲和可伸縮性強。

大數據hadoop組件工具,HBase的入門與使用

1.高可靠性

想要實現高可靠性,就需要保證以下兩點。一是數據不會丟失,二是服務不會宕機。首先,對於HBase而言,其採用的是Hdfs分佈式文件存儲系統。眾所周知,在Hdfs上,數據都是保存多份的,通常為3,並且是隨機存儲在不同的集群服務器上,因此除非3臺服務器同時故障,否則數據是不會丟失的。其次HBase中包含zookeeper組件,默認情況下,HBase管理zookeeper實例。Zookeeper會時刻保證HBase在某些服務器掛掉的同時,集群能夠正常運行。

2.高性能

傳統的關係型數據庫,例如mysql,在存儲到千萬級的時候,就很難做到實時查詢了。但是在HBase上,數據起步就在億級以上。究其原因,在於普通的關係型數據庫是逐條查詢的。但是HBase是通過一種叫做rowkey的鍵存表,而表的rowkey都是按字典序上升的。所謂字典上升就是ABCD、1234之類的順序。其次HBase是按列存儲的,這就類似於圖書館,如果你要找一本書,先去找這本書第一個字的首字母,然後去這個分區下尋找書籍類型。

大數據hadoop組件工具,HBase的入門與使用

3.按列存儲

假設現在有2條普通的數據如下:

大數據hadoop組件工具,HBase的入門與使用

現在突然發現列不夠用,還需要加一列住址數據,這時候就需要用到列的存儲形式:

大數據hadoop組件工具,HBase的入門與使用

這樣就可以隨意添加屬性,並且在查找的時候也非常便利,圖中CF表示列族。並且每一條數據都有時間戳,時間戳就代表版本號。關於HBase的存儲結構後續會有更加詳細的技術說明。

4.可伸縮性強

HBase從另一個角度處理伸縮性問題。它通過線性方式從下到上增加節點來進行擴展。HBase不是關係型數據庫,也不支持SQL,但是它有自己的特長,這是關係型數據庫不能處理的,HBase巧妙地將大而稀疏的表表放在商用的服務器集群上。

HBase現在在市面上的應用非常廣泛,大家購物經常會使用購物平臺,而很多大型購物平臺的後臺檢索就是基於HBase數據庫的。某寶的數據量大家可想而知,其在雙十一這種時候能保證數據能正常運轉,可見HBase的功能有多麼強大。


分享到:


相關文章: