作者:rfzrfz_353 | 来源:互联网 | 2023-09-18 10:09
篇首语:本文由编程笔记#小编为大家整理,主要介绍了HDFS权限管理相关的知识,希望对你有一定的参考价值。
一.权限概述
在Hadoop分布式文件系统中,每个文件和目录有一个所有者(owner)和一个组(group),文件或目录对其所有者、同组的其他用户以及所有其他用户分别有着不同的权限。当新建一个文件或目录,它的所有者即客户进程的用户,它的所属组是父目录的组。
每个访问HDFS的用户进程的标识分为两个部分,分别是用户名和组名列表。每次用户进程访问一个文件或目录foo,HDFS都要对其进行权限检查,
如果权限检查失败,则客户的操作会失败。
HDFS没有相关命令和接口去创建用户,默认情况使用的是操作系统提供的用户,linux系统中超级用户是root,HDFS系统中超级用户是NN进程的启动用户,HDFS的权限是自己控制的,来自于HDFS的超级用户.
二.切换HDFS启动用户
1.停止HDFS服务
2.添加用户bduser,密码123456
useradd bduser
passwd bduser
3.将资源与用户绑定
chown -R bduser /opt/bigdata/hadoop-2.10.1/
chown -R bduser /var/bigdata/hadoop/
4.添加bduser用户免密
su bduser
cd
ssh localhost
cd /home/bduser/.ssh
ssh-keygen -t dsa -P '' -f ./id_dsa
ssh-copy-id -i id_dsa bd101
ssh-copy-id -i id_dsa bd102
ssh-copy-id -i id_dsa bd103
ssh-copy-id -i id_dsa bd104
cat /home/bduser/.ssh/authorized_keys
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/cd88ed6eb9446dba.jpeg)
5.修改免密配置
cd /opt/bigdata/hadoop-2.10.1/etc/hadoop/
vim hdfs-site.xml
dfs.ha.fencing.ssh.private-key-files
/home/bduser/.ssh/id_dsa
scp hdfs-site.xml bd102:`pwd`
scp hdfs-site.xml bd103:`pwd`
scp hdfs-site.xml bd104:`pwd`
6.使用bduser用户启动HDFS
三.权限验证
1.用户权限
hdfs dfs -mkdir -p /user/root
hdfs dfs -mkdir -p /user/bduser
hdfs dfs -mkdir /temp
hdfs dfs -mkdir /temp/abc
最外层目录
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/2de0cadc702beac1.jpeg)
user目录下
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/8351364305c83fe0.jpeg)
root用户在temp目录下创建文件夹
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/80d3ac824069ab33.jpeg)
1.user目录的所有者是root,使用bduser用户可以在user目录下创建文件夹
2.temp目录的所有者是bduser,使用root用户在temp目录下创建文件夹失败
2.用户组权限
hdfs dfs -chown bduser:group01 /temp 或者
hdfs dfs -chgrp group01 /temp
hdfs dfs -chmod 770 /temp
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/304d7ceb8844af7f.jpeg)
创建新用户并绑定用户组
useradd good
passwd good
id good
bduser:hdfs dfs -mkdir /temp/bduser 创建成功
good:hdfs dfs -mkdir /temp/good 创建失败
![HDFS权限管理](https://img6.php1.cn/3cdc5/c3e4/78c/b6e33be1ebe11b28.jpeg)
groupadd group01
usermod -a -G group01 good
[root@bd101 ~]# id good
uid=1002(good) gid=1002(good) groups=1002(good),1003(group01)
hdfs dfsadmin -refreshUserToGroupsMappings
hdfs dfs -mkdir /temp/good 创建成功
3.http访问权限
地址:
http://bd101:50070/explorer.html
由于temp目录权限被修改,访问temp目录被拒绝,
可以通过修改temp权限解决,也可以通过以下方法解决
用户dr.who其实是hadoop中http访问的静态用户名,并没有啥特殊含义
修改core-site.xml即可解决
<property>
<name>hadoop.http.staticuser.username>
<value>bduservalue>
property>