Ubuntu上HDFS权限问题的排查与修复
一、先快速定位问题
hdfs dfs -ls -ld /pathhdfs dfs -getfacl /pathwhoami、idsudo -u hdfs 执行。二、常见场景与修复命令
Permission denied: user=root, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x)
sudo -u hdfs hdfs dfs -mkdir -p /user/rootsudo -u hdfs hdfs dfs -chown root:root /user/rootsudo -u hdfs hdfs dfs -chmod 775 /(不推荐生产)。/user/<username> 不存在或无写权限)
sudo -u hdfs hdfs dfs -mkdir -p /user/<username>sudo -u hdfs hdfs dfs -chown <username>:<group> /user/<username>hdfs-site.xml 将 dfs.permissions 设为 false,重启 HDFS;生产环境不建议。dfs.namenode.acls.enabled=true(在 hdfs-site.xml)hdfs dfs -setfacl -m user:<username>:rwx /pathhdfs dfs -getfacl /pathsudo usermod -aG supergroup <username>hdfs dfsadmin -refreshUserToGroupsMappings-get 失败
chmod u+w /local/dir)。三、推荐的最小安全配置与目录初始化
dfs.permissions=true;如需细粒度控制再开启 dfs.namenode.acls.enabled=true。hdfs dfs -mkdir -p /userhdfs dfs -chmod 755 /userhdfs dfs -mkdir -p /user/<username>hdfs dfs -chown <username>:<group> /user/<username>hdfs dfs -setfacl -m user:<username>:rwx /datahdfs dfs -setfacl -m group:<group>:r-x /datahdfs dfs -getfacl 校验生效情况。四、涉及代理或作业提交时的额外检查
core-site.xml 配置代理白名单:
<property><name>hadoop.proxyuser.<proxyuser>.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.<proxyuser>.groups</name><value>*</value></property>kinit 获取票据,再执行 HDFS/YARN 操作;相关安全参数在 core-site.xml 中设置(如 hadoop.security.authentication=kerberos)。五、实用命令速查
hdfs dfs -ls -ld /path、hdfs dfs -chmod <mode> /path、hdfs dfs -chown <user>:<group> /pathhdfs dfs -getfacl /path、hdfs dfs -setfacl -m user:<u>:rwx /pathhdfs dfsadmin -refreshUserToGroupsMappingsls -ld /local/dir、chmod u+w /local/dirsudo -u <hdfsuser> hdfs dfs <cmd>hdfs-site.xml 设置 dfs.permissions=false 并重启 HDFS。