在centos系統上部署安全的hadoop分布式文件系統(hdfs),需要仔細配置kerberos和hdfs權限。以下步驟將指導您完成此過程:
第一步:安裝和配置Kerberos
Kerberos是hadoop安全性的基石。首先,安裝Kerberos軟件包:
sudo yum install krb5-server krb5-workstation krb5-libs
接下來,配置/etc/krb5.conf文件。 替換YOUR.REALM.COM,kdc.your.realm.com為您的實際Kerberos領域和KDC主機名:
[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
第二步:配置Hadoop使用Kerberos
修改Hadoop的核心配置文件core-site.xml和hdfs-site.xml。 同樣,請將YOUR.REALM.COM替換為您的實際Kerberos領域。 /etc/security/keytabs/hdfs.headless.keytab 是關鍵的keytab文件路徑,確保其存在且擁有正確的權限。
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>
hdfs-site.xml:
<configuration> <property> <name>dfs.namenode.kerberos.principal</name> <value>nn/[email protected]</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>dn/[email protected]</value> </property> <property> <name>dfs.datanode.keytab.file</name> <value>/etc/security/keytabs/hdfs.headless.keytab</value> </property> <property> <name>dfs.namenode.http-kerberos.principal</name> <value>nn/[email protected]</value> </property> <property> <name>dfs.namenode.http-kerberos.keytab</name> <value>/etc/security/keytabs/hdfs.headless.keytab</value> </property> </configuration>
第三步:獲取Kerberos票據
使用kinit命令獲取Kerberos票據:
kinit [email protected]
將your_username替換為您的Kerberos用戶名。
第四步:格式化HDFS并啟動集群
格式化HDFS:
hdfs namenode -format
啟動HDFS集群:
start-dfs.sh
第五步:啟用HDFS安全策略
在hdfs-site.xml中啟用安全策略:
<property> <name>dfs.permissions.enabled</name> <value>true</value> </property> <property> <name>dfs.namenode.acls.enabled</name> <value>true</value> </property> <property> <name>dfs.datanode.acls.enabled</name> <value>true</value> </property>
第六步:配置HDFS權限 (可選)
使用hdfs dfsadmin命令設置HDFS權限:
hdfs dfsadmin -setPermission "/path/to/directory"
第七步:驗證配置
嘗試訪問HDFS:
hdfs dfs -ls /
如果成功,則表明HDFS安全策略配置成功。 請注意,這只是一個基本的配置指南,您可能需要根據您的具體環境和安全需求進行調整。 確保所有節點都已正確配置,并且Kerberos密鑰表文件正確放置并擁有正確的權限。 任何錯誤都可能導致HDFS無法啟動或訪問。