您好,登錄后才能下訂單哦!
本篇內容介紹了“HBase是如何保證數據的強一致性的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
HBase是如何保證數據的強一致性的?
有三個方面可以說的,另外HBase是犧牲了數據的可用性來保證它的數據強一致性的,即CAP原理中放棄了A,HBase是個cp系統。
1. HBase中每一條數據只會出現在一個Region,它的數據冗余備份不是在region這個層面做的,還是依賴HDFS來做的冗余。
而且同一時間一個Region只會被分配給一個RegionServer,這就保證了系統中只會有一條可以使用的數據。
2. HBase支持行級事物,即一個put操作要么成功,要么失敗。
3. 另外當有RegionServer宕機的時候,Region會被分配到其他的RegionServer上,同時重寫WAL Log,這個過程中整個Region中的數據是不可用的,因為它是缺失的。
如果可用的話那么必定會有數據不一致的問題(即寫入過的數據查詢不到),所以這里用可用性來換取了強一致性,等到WAL寫完,保證了數據完整性之后,才可重新訪問。
LSM-Tree結構為何寫入比讀取快那么多?
LSM-Tree結構寫入快的原因是它將對數據的修改增量保持在內存中,達到指定的大小限制后才將這些修改操作批量寫入磁盤;
讀取的時候會比較麻煩,需要合并磁盤中歷史數據和內存中最近修改操作,所以寫入性能大大提升,讀取時可能需要先看是否命中內存,否則需要訪問較多的磁盤文件。
極端的說,基于LSM樹實現的HBase的寫性能比MySQL高了一個數量級,讀性能低了一個數量級。
如果 HMaster 掛了,會對HBase集群造成什么影響?
說清楚HMaster的指責基本就能解決問題了
HMaster負責為RegionServer分配Region
負責RegionServer的負載均衡
發現失效的RegionServer并重新分配其上的region
管理用戶對table的增刪改查操作
所以HMaster宕機后數據的讀取和寫入還是正常的,但是無法對table進行操作,region的分配的相關操作也會無法進行。
“HBase是如何保證數據的強一致性的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。