在 CentOS 上“关闭 HDFS 安全”通常指的是 关闭 Hadoop 的安全认证机制(Security / Kerberos),也就是让 HDFS 以 非安全模式(non-secure mode) 运行。
下面分情况说明:
编辑以下文件(一般在 $HADOOP_HOME/etc/hadoop/):
core-site.xml<property>
<name>hadoop.security.authentication</name>
<value>simple</value>
</property>
hdfs-site.xml<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
(如需完全关闭权限检查)
yarn-site.xml(如果用 YARN)<property>
<name>yarn.resourcemanager.authentication.type</name>
<value>simple</value>
</property>
检查以下配置是否存在,有则删除或注释:
hadoop.security.authorization=true
dfs.namenode.kerberos.principal
dfs.datanode.kerberos.principal
systemctl stop krb5kdc
systemctl stop kadmin
systemctl disable krb5kdc
systemctl disable kadmin
stop-dfs.sh
start-dfs.sh
如果只是想 不校验用户权限:
<!-- hdfs-site.xml -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
然后重启 NameNode:
hdfs --daemon stop namenode
hdfs --daemon start namenode
hdfs dfsadmin -safemode get
如果是 SafeMode(安全模式) 而不是 Security:
退出安全模式:
hdfs dfsadmin -safemode leave
(通常是启动初期或磁盘异常导致)
hdfs getconf -confKey hadoop.security.authentication
输出应为:
simple
| 目标 | 操作 |
|---|---|
| 关闭 Kerberos | authentication=simple |
| 关闭权限 | dfs.permissions.enabled=false |
| 退出安全模式 | safemode leave |
| 重启服务 | stop/start-dfs.sh |
如果你能提供:
我可以给你更精确的修改方案。