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