天天看點

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的使用者權限資訊

繼續閱讀