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