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培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。