当前位置: 代码迷 >> 综合 >> 大数据之HDFS HA模式用户权限
  详细解决方案

大数据之HDFS HA模式用户权限

热度:13   发布时间:2024-02-04 12:43:39.0

 前面创建的集群都是用root用户创建的,但是企业中是不会用root进行操作,这里将对root搭建的应用切换到普通用户管理。


实操:切换root用户搭建的HDFS,用god(自己新建的普通用户)来管理。

1.停止之前的集群

$ stop-dfs.sh

2.在每个节点机器添加普通用户

$    useradd god
$    passwd god

3.将资源和用户绑定

#    hdfs集群目录
$    chown -R god /opt/bigdata/hadoop#    文件存储目录
$    chown -R god /var/bigdata/hadoop

4.切换到god用户去做免密登陆

#    拿到用户目录下的.ssh目录
$     ssh localhost$    cd /home/god/.ssh#    在node01
$    ssh-keygen -t dsa -P '' -f ./id_dsa
$    ssh-copy_id -i id_dsa node01
$    ssh-copy_id -i id_dsa node02
$    ssh-copy_id -i id_dsa node03
$    ssh-copy_id -i id_dsa node04#    在node02
$    ssh-keygen -t dsa -P '' -f ./id_dsa
$    ssh-copy_id -i id_dsa node01
$    ssh-copy_id -i id_dsa node02

5.修改hdfs-site.xml中的免密配置

在node01:

 <property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/god/.ssh/id_dsa</value>
</property>
将原来的  /root/.ssh/id_dsa 改为 /home/god/.ssh/id_dsa

然后分发给其他三台机器

$    scp hdfs-site.xml node02:`pwd`
$    scp hdfs-site.xml node03:`pwd`
$    scp hdfs-site.xml node04:`pwd`

 

6.启动hdfs 

$   start-dfs.sh

注意:

hdfs的用户和组 依赖于操作系统的用户和组

例如: 在node01 上  :

#    god用户创建目录/temp
$    hdfs dfs -mkdir /temp#    更改temp为god所属的xxoo组
$    hdfs dfs -chown god:xxoo    /temp#    修改temp权限
$    hdfs dfs -chmod 770 /temp#   然后再node04创建good用户  属于xxoo组,去操作temp
$    useradd good
$    passwd good
$    groupadd xxoo
$    usermod -a -G xxoo good
$    id good
$    su good
$    hdfs dfs -mkdir /temp/abc  
#    此时会提示创建失败 没有权限#    解决方法:
#    需要在node01上创建同样的用户和组,然后刷新hdfs用户和组
$    su root
$    useradd good
$    passwd  good
$    groupadd xxoo
$    usermod -a -G xxoo good
$    su god
#    注意  此处需要切换到god用户刷新hdfs用户和组,因为此时hdfs已经属于god而不属于root
$    hdfs dfsadmin -refreshToGroupsMappings#    此时 在node04上就可以用good用户在/temp目录下操作了   因为god和good同属于xxoo组