我有一個HBase集羣,其中每個區域服務器和主服務器都由用戶hbaseuser
運行。HBase表可以由HDFS中的特定用戶擁有嗎?
當客戶端john
連接並創建表時,表目錄和HDFS中的所有文件歸hbaseuser
(合理地說,因爲hbaseuser實際上正在運行所有內容)。
但是,如果john想要從包含受管理區域的表中刪除整個區域,他將運行HRegion.deleteRegion()
,它將嘗試從用戶john中刪除HDFS中的整個文件,該文件由於權限不足而失敗。 HRegion.deleteRegion()
嘗試直接在HDFS上而不是通過HBase運行命令。
是否存在一個HBase配置(通過配置文件或編程方式),這將允許用戶創建的表擁有該用戶擁有的HDFS文件?
E.g.目前由約翰創建,現在任何事情都是:
>hadoop fs -lsr /hbase/testregion
drwxr-xr-x - hbaseuser supergroup ... /hbase/testregion/<id>
-rw-r--r-- - hbaseuser supergroup ... /hbase/testregion/<id>/.regioninfo
,但我希望看到:
>hadoop fs -lsr /hbase/testregion
drwxr-xr-x - john supergroup ... /hbase/testregion/<id>
-rw-r--r-- - john supergroup ... /hbase/testregion/<id>/.regioninfo
是否有任何人知道,如果這樣的配置存在,這將允許用戶刪除創建的文件HBase的用戶?
我正在使用hbase-0.90.6-cdh3u5。