温馨提示×

centos如何启hdfs安全

小樊
43
2026-09-24 16:48:28
栏目: 智能运维

在 CentOS 上启用 HDFS 安全模式(Security / Kerberos),通常是指开启 HDFS 安全认证(SASL/Kerberos),而不是单纯进入 safemode。下面按生产常用方式说明。


一、前提条件

  1. CentOS 已安装 JDK(推荐 JDK 8)
  2. 已安装 Hadoop(HDFS)
  3. 已部署 Kerberos(KDC)
    • 可用系统自带:krb5-server
    • 或企业 KDC(FreeIPA / Active Directory)

二、安装 Kerberos(如未安装)

yum install -y krb5-server krb5-workstation krb5-libs

配置:

vi /etc/krb5.conf

示例:

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false

[realms]
 EXAMPLE.COM = {
  kdc = kdc.example.com
  admin_server = kdc.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM

三、创建 HDFS 的 Kerberos 主体

在 KDC 上执行:

kadmin.local
addprinc -randkey hdfs/namenode.example.com@EXAMPLE.COM
addprinc -randkey hdfs/datanode.example.com@EXAMPLE.COM

导出 keytab:

ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/namenode.example.com
ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/datanode.example.com

权限:

chown hdfs:hadoop /etc/security/keytabs/hdfs.keytab
chmod 400 /etc/security/keytabs/hdfs.keytab

四、修改 Hadoop 配置(核心)

1️⃣ core-site.xml

<property>
  <name>hadoop.security.authentication</name>
  <value>kerberos</value>
</property>

<property>
  <name>hadoop.security.authorization</name>
  <value>true</value>
</property>

2️⃣ hdfs-site.xml

<property>
  <name>dfs.namenode.kerberos.principal</name>
  <value>hdfs/namenode.example.com@EXAMPLE.COM</value>
</property>

<property>
  <name>dfs.namenode.keytab.file</name>
  <value>/etc/security/keytabs/hdfs.keytab</value>
</property>

<property>
  <name>dfs.datanode.kerberos.principal</name>
  <value>hdfs/datanode.example.com@EXAMPLE.COM</value>
</property>

<property>
  <name>dfs.datanode.keytab.file</name>
  <value>/etc/security/keytabs/hdfs.keytab</value>
</property>

<property>
  <name>dfs.block.access.token.enable</name>
  <value>true</value>
</property>

五、启动 HDFS(安全模式)

先获取凭证(测试):

kinit hdfs/namenode.example.com -k -t /etc/security/keytabs/hdfs.keytab

启动:

start-dfs.sh

检查:

hdfs dfs -ls /

六、验证是否启用安全

hdfs getconf -confKey hadoop.security.authentication

返回:

kerberos

七、常见误区说明

❌ “启 hdfs 安全” ≠ hdfs dfsadmin -safemode enter

  • safemode 只是只读维护状态
  • 真正安全是 Kerberos + ACL + Token

八、可选增强

  • 启用 DataNode SASL
  • 启用 SSL(RPC + HTTP)
  • 启用 Ranger / Sentry 做权限控制

如果你愿意,我可以:

  • 给你 完整最小安全 HDFS 示例
  • 或区分 CDH / HDP / 原生 Hadoop
  • 或只做 测试环境快速 Kerberos

直接告诉我你的 Hadoop 版本和发行版即可。

0 踩