HDFS Permissions
来源:互联网 发布:c语言easyx 编辑:程序博客网 时间:2024/05/22 09:01
1.概述
Hadoop分布式文件系统(HDFS)对文件和文件夹的权限控制模型与 POSIX文件系统的权限控制模型一样,每一个文件和文件夹都分配了所有者用户和所有者用户组。每个客户端访问HDFS的过程中,身份凭证由用户名和组列表两部分组成,Hadoop进行身份验证的时候,首先验证用户名,如果用户名验证不通过则验证用户组,如果用户名和用户组都验证失败则身份验证失败。
2.身份验证模式
Hadoop支持2种不同的身份验证模式,可以通过hadoop.security.authentication属性进行配置:
- simple
在simple身份认证模式下,用户的身份信息就是客户端的操作系统的登录用户,在Unix类的操作系统中,HDFS的用户名等同使用whoami命令查看结果的用户名。
- kerberos
在kerberos身份认证模式下,HDFS用户的身份是由kerberos凭证决定的。kerberos认证的安全性较高,但配置相对复杂,一般情况下很少使用。
3.Hadoop的Super-User
哪个用户启动Hadoop的Namenode,哪个用户就是Hadoop的超级管理员,拥有Hadoop全部权限。HDFS的超级管理员不必是操作系统的超级管理员。
4.配置参数
假设有一个HDFS集群,有两个用户UserA和UserB。要求HDFS只允许UserA和UserB访问,不允许其它用户访问,且UserA创建的文件UserB不能访问,同样UserB创建的文件UserA也不能访问。可以执行以下配置:
(1) 在core-site.xmll中配置以下属性:
<property> <name>hadoop.security.authorization</name> <value>true</value> </property>
(2) 配置${HADOOP_CONF_DIR}/hadoop-policy.xml
<property> <name> security.client.protocol.acl </name> <value>UserA,UserB</value> </property>
只允许UserA,UserB访问Hdfs,不允许其它用户访问,注意这个地方如果设置用户组的话,用户组前面需要加一个空格。
(3)修改core-site.xmll中配置以下属性,开启dfs安全配置,同时设置新创建文件的umask码为077
<property> <name>dfs.permissions</name> <value>true</value> </property><property> <name>fs.permissions.umask-mode</name> <value>077</value> </property>
如果用户通过通过跳板机或者客户端访问Hdfs的时候,建议使用final关键字以防止Hdfs服务器配置被客户端的配置覆盖,具体配置如下:
<property> <name>dfs.permissions</name> <value>true</value> <final>true</final> </property>
最后,使用hadoop启动hadoop执行start-all.sh 启动Hadoop,不能使用UserA或者UserB启动Hadoop。
5.umask
POSIX文件权限有读,写,执行三种权限,分别用r,w,x代表,这三种权限的数值大小如下表所示:
1 x
2 w
4 r
根据这三个数值可以得到混合权限数值表
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
这样Hdfs的文件有三种权限组成,可以通过hadoop fs -ls查看
drwxr-xr-x
以上权限的解释为
d rwx r-x r-x
目录 文件所有者的权限 同组用户的权限 其它用户的权限
表示为数值就是755
可以理解umask的作用为屏蔽权限位,例如umask 022,不屏蔽所属用户的权限,屏蔽同组用户的w权限,屏蔽其他用户的w权限,于是文件的默认权限为755,更简便的方法是用777减去022,得到755
6.其它问题
需要更改相关文件夹的权限,确保Hadoop在运行过程中的各类临时数据可以有写入权限,如果需要运行Mapreduce则需要修改Hdfs上面的${hadoop-tmp}/mapred/staging 文件夹权限,可以给737权限。如果需要运行Hive则需要给客户端本地硬盘的${hadoop-tmp}赋予其它用户写入权限。
- HDFS Permissions
- HDFS Permissions Guide
- HDFS Permissions Guide
- windows hadoop HDFS Failed to set permissions of path
- Permissions
- 云计算(十五)- HDFS权限管理指南(HDFS Permissions Guide)
- hive 报错/tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x
- Impala SQL: Unable to LOAD DATA from HDFS path due to WRITE permissions
- The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw-
- IIS Permissions
- UNIX permissions
- ????????????no permissions
- android permissions
- ???????????? no permissions
- System Permissions
- System Permissions
- ???????????? no permissions
- System Permissions
- 状态的进行中、未开始、已结束状态的排序
- docker_基础
- C语言结构数组 动态录入游戏英雄信息并且计算平均生命值
- 获取Facebook直播地址
- Qt程序打包成exe可执行文件图文教程
- HDFS Permissions
- 线性代数6-二次型
- 福建计划投资逾万亿元实施“九大工程”
- 本土浏览器如何步步演绎对国外浏览器的逆袭?
- codeforces 839B(模拟)
- properties配置文件
- 这可能是史上最全的计算机编程语言列表了
- tomcat的Connection reset异常
- IP--划分子网