Hbase介紹(掃盲篇)

HBASE在大數據是的這麼火,它究竟是個啥東西?本掃盲篇雖然是網絡上收集而來,但是是我覺得介紹的最好,最透徹的文章。要想用的好,先要了解她的前世今生,這樣才能對它產生興趣。

HBase 概述

HBase是Hadoop的生態系統,是建立在Hadoop文件系統(HDFS)之上的分佈式、面向列的數據庫,通過利用Hadoop的文件系統提供容錯能力。如果你需要進行實時讀寫或者隨機訪問大規模的數據集的時候,請考慮使用HBase!

HBase作爲Google Bigtable的開源實現,Google Bigtable利用GFS作爲其文件存儲系統類似,則HBase利用Hadoop HDFS作爲其文件存儲系統;Google通過運行MapReduce來處理Bigtable中的海量數據,同樣,HBase利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用Chubby作爲協同服務,HBase利用Zookeeper作爲對應。

 //img.mukewang.com/wiki/5bf4fed109ca49aa03710213.jpg

HBase處理數據(大概瞭解)

雖然Hadoop是一個高容錯、高延時的分佈式文件系統和高併發的批處理系統,但是它不適用於提供實時計算;HBase是可以提供實時計算的分佈式數據庫,數據被保存在HDFS分佈式文件系統上,由HDFS保證期高容錯性,但是再生產環境中,HBase是如何基於hadoop提供實時性呢? HBase上的數據是以StoreFile(HFile)二進制流的形式存儲在HDFS上block塊兒中;但是HDFS並不知道的HBase用於存儲什麼,它只把存儲文件認爲是二進制文件,也就是說,HBase的存儲數據對於HDFS文件系統是透明的。

Hbase的優點及應用場景(後續有介紹,先了解)

半結構化或非結構化數據: 
對於數據結構字段不夠確定或雜亂無章非常難按一個概念去進行抽取的數據適合用HBase,因爲HBase支持動態添加列。
記錄很稀疏: 
RDBMS的行有多少列是固定的。爲null的列浪費了存儲空間。HBase爲null的Column不會被存儲,這樣既節省了空間又提高了讀性能。
多版本號數據: 
依據Row key和Column key定位到的Value能夠有隨意數量的版本號值,因此對於須要存儲變動歷史記錄的數據,用HBase是很方便的。比方某個用戶的Address變更,用戶的Address變更記錄也許也是具有研究意義的。
僅要求最終一致性: 
對於數據存儲事務的要求不像金融行業和財務系統這麼高,只要保證最終一致性就行。(比如HBase+elasticsearch時,可能出現數據不一致)
高可用和海量數據以及很大的瞬間寫入量: 
WAL解決高可用,支持PB級數據,put性能高
適用於插入比查詢操作更頻繁的情況。比如,對於歷史記錄表和日誌文件。(HBase的寫操作更加高效)
業務場景簡單: 
不需要太多的關係型數據庫特性,列入交叉列,交叉表,事務,連接等。
Hbase的缺點:

單一RowKey固有的侷限性決定了它不可能有效地支持多條件查詢[2]
不適合於大範圍掃描查詢
不直接支持 SQL 的語句查詢
 

 

 

發佈了70 篇原創文章 · 獲贊 57 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章