HBase是如何保證數據的強一致性的 | 面試系列.5

接着前面幾篇我們繼續:
如何比較裝X地回答問題 | 面試系列.1
解釋下 HDFS 的 Short-Circuit | 面試系列.2
HBase 有哪些優化點?| 面試系列.3
HBase 是如何作到毫秒級查詢的 | 面試系列.4



HBase是如何保證數據的強一致性的?


有三個方面能夠說的,另外HBase是犧牲了數據的可用性來保證它的數據強一致性的,即CAP原理中放棄了A,HBase是個cp系統。web


1. HBase中每一條數據只會出如今一個Region,它的數據冗餘備份不是在region這個層面作的,仍是依賴HDFS來作的冗餘。面試


並且同一時間一個Region只會被分配給一個RegionServer,這就保證了系統中只會有一條能夠使用的數據。
微信


2. HBase支持行級事物,即一個put操做要麼成功,要麼失敗。app


3. 另外當有RegionServer宕機的時候,Region會被分配到其餘的RegionServer上,同時重寫WAL Log,這個過程當中整個Region中的數據是不可用的,由於它是缺失的。負載均衡


若是可用的話那麼一定會有數據不一致的問題(即寫入過的數據查詢不到),因此這裏用可用性來換取了強一致性,等到WAL寫完,保證了數據完整性以後,纔可從新訪問。性能




LSM-Tree結構爲什麼寫入比讀取快那麼多?大數據


LSM-Tree結構寫入快的緣由是它將對數據的修改增量保持在內存中,達到指定的大小限制後纔將這些修改操做批量寫入磁盤;優化


讀取的時候會比較麻煩,須要合併磁盤中歷史數據和內存中最近修改操做,因此寫入性能大大提高,讀取時可能須要先看是否命中內存,不然須要訪問較多的磁盤文件。ui


極端的說,基於LSM樹實現的HBase的寫性能比MySQL高了一個數量級,讀性能低了一個數量級。
url





若是 HMaster 掛了,會對HBase集羣形成什麼影響?


說清楚HMaster的指責基本就能解決問題了


  1. HMaster負責爲RegionServer分配Region

  2. 負責RegionServer的負載均衡

  3. 發現失效的RegionServer並從新分配其上的region

  4. 管理用戶對table的增刪改查操做


因此HMaster宕機後數據的讀取和寫入仍是正常的,可是沒法對table進行操做,region的分配的相關操做也會沒法進行。




熱門推薦:

唐朝的大數據平臺 - 大案牘術

大數據 SQL Boy 脫坑指南

說說實時流式計算

大數據不就是寫SQL嗎?

從面試官的角度談談大數據面試

你是否能被輕易地取代?

以爲有價值請關注 


本文分享自微信公衆號 - 老懞大數據(simon_bigdata)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索