我们还可以使用Ranger对HDFS进行目录权限访问控制。这里需要添加“HDFS-Plugin”插件。
安装“HDFS-Plugin”插件步骤如下:
#将node3上编译好的HDFS插件发送到node1上
[root@node3 ~]# cd /software/apache-ranger-2.1.0/target
[root@node3 target]# scp ./ranger-2.1.0-hdfs-plugin.tar.gz node1:/software/
#登录node1,解压
[root@node1 ~]# cd /software/
[root@node1 software]# tar -zxvf ./ranger-2.1.0-hdfs-plugin.tar.gz #配置Ranger-Admin访问地址
POLICY_MGR_URL=http://node1:6080
#配置HDFS仓库,用于Ranger页面配置
REPOSITORY_NAME=hdfs_repo
#配置HDFS安装目录
COMPONENT_INSTALL_DIR_NAME=/software/hadoop-3.1.4/
#配置操作HDFS插件的用户和所属组
CUSTOM_USER=root
CUSTOM_GROUP=root[root@node1 ~]# cd /software/ranger-2.1.0-hdfs-plugin
[root@node1 ranger-2.1.0-hdfs-plugin]# enable-hdfs-plugin.sh配置HDFS的“/software/hadoop-3.1.4/etc/hadoop/hdfs-site.xml”文件,在每台HDFS节点上配置:
<property>
<!-- 启用权限 -->
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<!-- 开启ACL -->
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
<property>
<!-- 文件操作时,检查权限 -->
<name>dfs.permissions</name>
<value>true</value>
</property>
<!-- 以下两项是关于Ranger安全检查配置 -->
<property>
<name>dfs.namenode.inode.attributes.provider.class</name>
<value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
</property>
<property>
<name>dfs.permissions.ContentSummary.subAccess</name>
<value>true</value>
</property>[root@node1 ~]# stop-all.sh
[root@node1 ~]# start-all.sh


配置好之后:

#在node1节点上创建HDFS目录
[root@node1 ~]# hdfs dfs -mkdir /rangertest
#向HDFS此目录下上传一个有内容的txt文件:
[root@node1 ~]# hdfs dfs -put ./data.txt /rangertest
在node1中切换用户user1,读取HDFS中的数据,有只读权限
[root@node1 ~]# su user1
[user1@node1 root]$ hdfs dfs -cat /rangertest/data.txt
#使用user1用户上传数据文件到HDFS“/rangertest/”下,没有操作权限
[user1@node1 ~]$ hdfs dfs -put ./user2data.txt /rangertest
put: Permission denied: user=user1, access=WRITE, inode="/rangertest":root:supergroup:drwxr-xr-x




再次执行,权限通过,通过Ranger已经可以对HDFS进行权限管理。
[user1@node1 ~]$ hdfs dfs -put ./user2data.txt /rangertest
[user1@node1 ~]$ hdfs dfs -cat /rangertest/user2data.txt
hello a
hello b
hello c原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。