天天看点

hbase simple权限二一:HBASE权限user二:acl数据更新zookeeper及cache三:cache

HBASE的user底层使用的还是hadoop的user;

构造connection类:

其中可以user参数

进入HBASE的user类:有一个构造方法:

可以看到使用子类SecureHadoopUser

SecureHadoopUser的构造方法参数UserGroupInformation中看到:

其中封装user的则是hadoop.security的user类。

(初始化的时候会执将所有表的权限信息写到对应table的node节点上)

在HBASE执行put以及delete操作触发updateAcl更新操作:

获取权限监控的znode

读取acl表的所有权限:

并且会解析数据成指定格式,写入zookeeper,并且转成字节;

解析核心代码:

则是最终写入zookeeper的格式数据

序列化写入数据:

zookeeper上node子znode数据变更,会执行更新cache操作;

相应的执行refreshAuthManager操作,包括

然后重新将新权限信息放进cache中,提供HBASE权限的检查check操作。

当然,再删除的时候,数据信息也会执行相应的delete操作。

在TableAuthManager权限检查类中,三种cache,

分别在处理超级用户superuser,namespace及table的用户权限信息

继续阅读