HDFS中將普通用戶加入到supergroup組來訪問HDFS

本機是linux系統,使用遠程的hadoop。程序直接訪問hdfs://node1:8020 會有權限問題。

比較簡單的解決粗暴方式是把用戶加入到supergroup組。

Hadoop本身的用戶和組的關係,是同步Linux系統中的用戶權限,但是HDFS和Linux的超級用戶組又有一點差別,HDFS中的超級用戶組是supergroup,但是Linux中默認是沒有supergoup這個組,這個時候只需要在Linux中增加supergroup這個組,然後將要在HDFS中加入到supergroup中的用戶加到這個組中,再同步HDFS用戶和組即可。 

操作步驟如下:

1、在hadoop節點所在的linux裏,新建與本機用戶同名的新用戶

useradd admin

2、在Linux執行如下命令增加supergroup

groupadd supergroup

3、如將用戶admin增加到supergroup中,再執行:

usermod -a -G supergroup admin

4、使用超級管理員賬號,同步系統的權限信息到HDFS:

su - admin -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings"

5、驗證

1) 將/user/hdfs目錄的權限由700,修改爲770

su - admin -s /bin/bash -c "hadoop fs -chmod 770 /datapath"

2) 通過加到supergroup組中的admin用戶去列這個目錄:

su - admin -s /bin/bash -c "hadoop fs -ls /datapath"

可成功列出目錄即表示操作成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章