更新時間:2020-10-28 來源:黑馬程序員 瀏覽量:
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式數據庫,它起源于2006年Google發表的BigTable論文。在2008年,PowerSet的Chad Walters和Jim Keller受到了該論文思想的啟發,從而把HBase作為Hadoop的子項目來進行開發維護,用于支持結構化的海量數據存儲。
HBase的一大優點是可在廉價PC 服務器上搭建起大規模結構化存儲集群。HBase的目標是存儲并處理大型的數據,更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數據。HBase分布式數據庫具有如下的顯著特點:
容量大
HBase分布式數據庫中的表可以存儲成千上萬的行和列組成的數據。
面向列
HBase是面向列的存儲和權限控制,并支持獨立檢索。列存儲,其數據在表中是按照某列存儲的,根據數據動態的增加列,并且可以單獨對列進行各種操作。
多版本
HBase中表的每一個列的數據存儲都有多個Version(版本)。一般地,每一列對應著一條數據,但是有的數據會對應多個版本,例如,存儲個人信息的HBase表中,如果某個人多次更換過家庭住址,那么記錄家庭住址的數據就會有多個版本。
稀疏性
由于HBase中表的列允許為空,并且空列不會占用存儲空間,因此,表可以設計的非常稀疏。
擴展性
HBase的底層是依賴于HDFS。當磁盤空間不足時,我們可以動態的增加機器(即DataNode節點服務)來解決,從而避免像關系型數據庫那樣,進行數據的遷移。
高可靠性
由于HBase底層使用是的HDFS,而HDFS本身具有備份機制,所以在Spark集群出現嚴重問題時,Replication(即副本)機制能夠保證數據不會發生丟失或損壞。
雖然HBase是Google Bigtable的開源實現,但是它們之間有很多不同之處,例如:Google BigTable利用GFS作為其文件存儲系統,而HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理BigTable中的海量數據,而HBase同樣利用Hadoop的MapReduce來處理HBase中的海量數據;Google BigTable利用Chubby作為協同服務,而HBase利用Zookeeper作為協調服務作用。
HBase作為一種分布式數據庫,它與傳統數據庫相比有很大區別,下面從存儲模式、表字段以及可延伸性這三個方面分別進行介紹。
(1) 存儲模式
傳統數據庫中是基于行存儲的,而HBase是基于列進行存儲的。
(2) 表字段
傳統數據庫中的表字段不能超過30個,而HBase中的表字段不作限制。
(3) 可延伸性
傳統數據庫中的列是固定的,需要先確定列有多少才會增加數據去存儲,而HBase是根據數據存儲的大小去動態的增加列,列是不固定的。
猜你喜歡: