Hadoop用户、用户组以及权限

hadoop的用户和用户组使用的是Linux中的用户组。先看一个问题,如何把root用户加入到超级组supergroup
先创建用户组:supergroup

groupadd supergroup

然后把root用户添加到该组

usermod -a -G supergroup root

刷新hadoop上的用户和用户组映射

 hdfs dfsadmin -refreshUserToGroupsMappings

第一次执行,root用户并没有获得supergroup组的权限,可能是因为执行的机器hadoop01不是active状态,也可能是因为必须两个namenode必须都都有这个用户组才行,具体没有验证。直接在所有机器上执行了操作。
查看namenode状态的命令

hdfs haadmin -getAllServiceState

在这里插入图片描述
修改Hadoop文件用户组

hadoop fs -chown root:root /user/root

第一个root是用户组,第二个是用户

[root@hadoop01 ~]# hadoop fs -ls /user
Found 2 items
drwx------   - hadoop supergroup          0 2020-12-27 18:56 /user/hadoop
drwx------   - root   root                0 2020-12-27 19:24 /user/root

为了方便在所有机器上执行同样的操作,写了一个脚本doAll

for i in {5..1};
do
echo "正在服务器hadoop0${i}上执行操作:$1"
ssh hadoop0${i} "${1}"
done

看效果

[root@hadoop01 ~]# doAll 'groupadd supergroup'
正在服务器hadoop05上执行操作:groupadd supergroup
正在服务器hadoop04上执行操作:groupadd supergroup
正在服务器hadoop03上执行操作:groupadd supergroup
正在服务器hadoop02上执行操作:groupadd supergroup
正在服务器hadoop01上执行操作:groupadd supergroup
groupadd: group 'supergroup' already exists
[root@hadoop01 ~]# doAll 'usermod -a -G supergroup root'
正在服务器hadoop05上执行操作:usermod -a -G supergroup root
正在服务器hadoop04上执行操作:usermod -a -G supergroup root
正在服务器hadoop03上执行操作:usermod -a -G supergroup root
正在服务器hadoop02上执行操作:usermod -a -G supergroup root
正在服务器hadoop01上执行操作:usermod -a -G supergroup root
[root@hadoop01 ~]# doAll 'usermod -a -G supergroup hadoop'
正在服务器hadoop05上执行操作:usermod -a -G supergroup hadoop
正在服务器hadoop04上执行操作:usermod -a -G supergroup hadoop
正在服务器hadoop03上执行操作:usermod -a -G supergroup hadoop
正在服务器hadoop02上执行操作:usermod -a -G supergroup hadoop
正在服务器hadoop01上执行操作:usermod -a -G supergroup hadoop
[root@hadoop01 ~]# doAll 'cat /etc/group |grep supergroup'
正在服务器hadoop05上执行操作:cat /etc/group |grep supergroup
supergroup:x:1001:root,hadoop
正在服务器hadoop04上执行操作:cat /etc/group |grep supergroup
supergroup:x:1001:root,hadoop
正在服务器hadoop03上执行操作:cat /etc/group |grep supergroup
supergroup:x:1001:root,hadoop
正在服务器hadoop02上执行操作:cat /etc/group |grep supergroup
supergroup:x:1001:root,hadoop
正在服务器hadoop01上执行操作:cat /etc/group |grep supergroup
supergroup:x:1001:root,hadoop

你可能感兴趣的:(java,java,后端)