温馨提示×

如何在CentOS上配置HDFS的安全设置

小樊
31
2025-12-09 22:22:46
栏目: 智能运维

在CentOS上配置HDFS(Hadoop分布式文件系统)的安全设置涉及多个步骤,包括启用Kerberos认证、配置HDFS权限和设置SSL/TLS加密。以下是一个基本的指南:

1. 安装和配置Kerberos

Kerberos是HDFS安全性的基础。你需要先安装和配置Kerberos。

安装Kerberos

sudo yum install krb5-server krb5-admin-server krb5-workstation

配置Kerberos

编辑/etc/krb5.conf文件,添加以下内容:

[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

启动Kerberos服务

sudo systemctl start krb5kdc
sudo systemctl start kadmind

创建Kerberos主体

kadmin.local -q "addprinc -randkey hdfs/kdc.your.realm.com@YOUR.REALM.COM"
kadmin.local -q "addprinc -randkey hdfs/hostname@YOUR.REALM.COM"
kadmin.local -q "ktadd -k /etc/krb5kdc/hdfs.keytab hdfs/hostname@YOUR.REALM.COM"

2. 配置HDFS

编辑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/krb5kdc/hdfs.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/krb5kdc/hdfs.keytab</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address</name>
        <value>namenode-hostname:8020</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>namenode-hostname:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.rpc-address</name>
        <value>secondary-namenode-hostname:8020</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondary-namenode-hostname:50090</value>
    </property>
    <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>true</value>
    </property>
</configuration>

3. 配置YARN

如果你使用YARN,还需要配置YARN的安全设置。

编辑yarn-site.xml文件,添加以下配置:

<configuration>
    <property>
        <name>yarn.resourcemanager.principal</name>
        <value>yarn/kdc.your.realm.com@YOUR.REALM.COM</value>
    </property>
    <property>
        <name>yarn.resourcemanager.keytab</name>
        <value>/etc/krb5kdc/yarn.keytab</value>
    </property>
    <property>
        <name>yarn.nodemanager.principal</name>
        <value>yarn/hostname@YOUR.REALM.COM</value>
    </property>
    <property>
        <name>yarn.nodemanager.keytab</name>
        <value>/etc/krb5kdc/yarn.keytab</value>
    </property>
</configuration>

4. 配置SSL/TLS

为了进一步提高安全性,可以配置SSL/TLS加密。

生成SSL证书

keytool -genkey -alias hdfs -keyalg RSA -keystore hdfs.keystore -storepass yourpassword -validity 365 -keysize 2048

配置HDFS使用SSL

编辑hdfs-site.xml文件,添加以下配置:

<configuration>
    <property>
        <name>dfs.namenode.https-address</name>
        <value>namenode-hostname:50470</value>
    </property>
    <property>
        <name>dfs.namenode.https-keystore-file</name>
        <value>/path/to/hdfs.keystore</value>
    </property>
    <property>
        <name>dfs.namenode.https-keystore-password</name>
        <value>yourpassword</value>
    </property>
    <property>
        <name>dfs.datanode.https-address</name>
        <value>datanode-hostname:50475</value>
    </property>
    <property>
        <name>dfs.datanode.https-keystore-file</name>
        <value>/path/to/hdfs.keystore</value>
    </property>
    <property>
        <name>dfs.datanode.https-keystore-password</name>
        <value>yourpassword</value>
    </property>
</configuration>

5. 重启HDFS和YARN服务

sudo systemctl restart hadoop-namenode
sudo systemctl restart hadoop-datanode
sudo systemctl restart hadoop-secondarynamenode
sudo systemctl restart hadoop-resourcemanager
sudo systemctl restart hadoop-nodemanager

6. 验证配置

使用kinit命令获取Kerberos票据,并验证HDFS和YARN服务是否正常运行。

kinit hdfs/hostname@YOUR.REALM.COM
hdfs dfsadmin -report
yarn node -list

通过以上步骤,你应该能够在CentOS上成功配置HDFS的安全设置。请根据你的具体环境和需求进行调整。

0