温馨提示×

CentOS HDFS如何配置安全认证

小樊
42
2025-10-17 22:22:43
栏目: 智能运维

在CentOS上配置HDFS(Hadoop分布式文件系统)的安全认证,通常涉及以下几个步骤:

1. 安装和配置Hadoop

首先,确保你已经安装了Hadoop,并且Hadoop集群已经启动。

2. 配置Kerberos认证

Kerberos是一种网络认证协议,用于在不安全的网络上安全地验证用户和服务。

2.1 安装Kerberos客户端

在所有Hadoop节点上安装Kerberos客户端:

sudo yum install krb5-workstation krb5-libs krb5-devel

2.2 配置Kerberos

编辑/etc/krb5.conf文件,配置Kerberos领域和KDC(Key Distribution Center):

[libdefaults]
    default_realm = YOUR.REALM.COM
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true

[realms]
    YOUR.REALM.COM = {
        kdc = kdc.your.realm.com:88
        admin_server = kdc.your.realm.com:749
    }

[domain_realm]
    .your.realm.com = YOUR.REALM.COM
    your.realm.com = YOUR.REALM.COM

2.3 创建Kerberos主体

在KDC上创建Hadoop服务和用户的Kerberos主体:

kadmin.local -q "addprinc -randkey hdfs/kdc.your.realm.com@YOUR.REALM.COM"
kadmin.local -q "addprinc -randkey hdfs/hostname@YOUR.REALM.COM"

2.4 获取Kerberos票据

在所有Hadoop节点上获取Kerberos票据:

kinit hdfs/hostname@YOUR.REALM.COM

3. 配置Hadoop安全设置

编辑Hadoop配置文件以启用Kerberos认证。

3.1 core-site.xml

<configuration>
    <property>
        <name>hadoop.security.authentication</name>
        <value>kerberos</value>
    </property>
    <property>
        <name>hadoop.security.authorization</name>
        <value>true</value>
    </property>
    <property>
        <name>hadoop.security.auth_to_local</name>
        <value>
            RULE:[1:$1@$0](.*@YOUR.REALM.COM)s/@.*//
        </value>
    </property>
</configuration>

3.2 hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.kerberos.principal</name>
        <value>hdfs/kdc.your.realm.com@YOUR.REALM.COM</value>
    </property>
    <property>
        <name>dfs.namenode.keytab.file</name>
        <value>/etc/security/keytabs/hdfs.headless.keytab</value>
    </property>
    <property>
        <name>dfs.datanode.kerberos.principal</name>
        <value>hdfs/hostname@YOUR.REALM.COM</value>
    </property>
    <property>
        <name>dfs.datanode.keytab.file</name>
        <value>/etc/security/keytabs/hdfs.headless.keytab</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address</name>
        <value>namenode:8020</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>namenode:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.rpc-address</name>
        <value>secondarynamenode:8020</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondarynamenode:50090</value>
    </property>
</configuration>

4. 启动Hadoop集群

在所有Hadoop节点上启动Hadoop集群:

start-dfs.sh
start-yarn.sh

5. 验证配置

使用klist命令验证Kerberos票据是否有效:

klist

通过以上步骤,你应该能够在CentOS上成功配置HDFS的安全认证。确保所有节点上的配置文件一致,并且Kerberos票据有效。

0