1.怎么實現HBase的加鹽之后的Key找Value?
兩種方式
如果是隨機加鹽,通過自定義一個HBase協處理器[coprocessors]來實現。
加鹽時,使用hash截取拼接的方式,這樣查找時,采用同樣的方式拼接查找即可(rowkey計算md5,sha256等截取前幾位+原始rowkey拼接, 不利于scan,但是get能精確定位)
2.HBase 如何保證數據的強一致性?
HBase 是犧牲了數據的部分可用性來保證它的數據強一致性的,即CAP原理中舍棄了一部分的可用性,HBase 是個 CP系統。
* HBase 中每一條數據只會出現在一個 Region,它的數據冗余備份不是在 Region 這個層面做的,還是依賴 HDFS 來做的冗余。而且同一時間一個 Region 只會被分配給一個 RegionServer,這就保證了系統中只會有一條可以使用的數據。HBase 支持行級事物,即一個 put 操作要么成功,要么失敗。
* 另外當有 RegionServer 宕機的時候,Region 會被分配到其他的 RegionServer 上,同時重寫 WAL Log,這個過程中整個 Region 中的數據是不可用的,因為它是缺失的。如果可用性強的話那么必定會有數據不一致的問題(即寫入過的數據查詢不到),所以這里用可用性來換取了強一致性,等到 WAL 寫完,保證了數據完整性之后,才可重新訪問。
更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。