CentOS 上 HDFS 权限问题的排查与解决
一 快速定位与修复步骤
hdfs dfsadmin -safemode gethdfs dfsadmin -safemode leavehdfs dfs -ls -ld <path>,必要时修正属主与权限。hdfs dfsadmin -getQuota <path>、hdfs dfsadmin -setQuota <N> <path>hdfs dfsadmin -reportkinit <principal>,票据过期也会导致权限类异常。sudo systemctl restart hadoop-hdfs-namenode、sudo systemctl restart hadoop-hdfs-datanode。二 正确配置权限模型
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
<property>
<name>fs.permissions.umask-mode</name>
<value>022</value>
</property>
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
hdfs dfs -mkdir -p /user/<app>
hdfs dfs -chmod 1777 /user/<app>
hdfs dfs -chown <app>:<appgrp> /user/<app>
三 常用命令速查
hdfs dfs -chmod **755** /pathhdfs dfs -chown **user:group** /pathhdfs dfs -setfacl -m **user:<u>:rwx,group:<g>:r-x** /pathhdfs dfs -getfacl /pathhdfs dfsadmin -getQuota /pathhdfs dfsadmin -setQuota **N** /pathhdfs dfsadmin -reporthdfs dfsadmin -safemode **get/leave**hdfs dfsadmin -refreshUserToGroupsMappings四 典型场景与对策
kinit <principal> 获取票据,票据过期需续期。hdfs dfsadmin -safemode leave 后再写入。五 安全与运维建议