在centos系統(tǒng)上部署安全的hadoop分布式文件系統(tǒng)(hdfs),需要仔細(xì)配置kerberos和hdfs權(quán)限。以下步驟將指導(dǎo)您完成此過程:
第一步:安裝和配置Kerberos
Kerberos是hadoop安全性的基石。首先,安裝Kerberos軟件包:
sudo yum install krb5-server krb5-workstation krb5-libs
接下來,配置/etc/krb5.conf文件。 替換YOUR.REALM.COM,kdc.your.realm.com為您的實(shí)際Kerberos領(lǐng)域和KDC主機(jī)名:
[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
啟動(dòng)Kerberos服務(wù):
sudo systemctl start krb5kdc sudo systemctl start kadmind
第二步:配置Hadoop使用Kerberos
修改Hadoop的核心配置文件core-site.xml和hdfs-site.xml。 同樣,請(qǐng)將YOUR.REALM.COM替換為您的實(shí)際Kerberos領(lǐng)域。 /etc/security/keytabs/hdfs.headless.keytab 是關(guān)鍵的keytab文件路徑,確保其存在且擁有正確的權(quán)限。
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票據(jù)
使用kinit命令獲取Kerberos票據(jù):
kinit [email protected]
將your_username替換為您的Kerberos用戶名。
第四步:格式化HDFS并啟動(dòng)集群
格式化HDFS:
hdfs namenode -format
啟動(dòng)HDFS集群:
start-dfs.sh
第五步:?jiǎn)⒂肏DFS安全策略
在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權(quán)限 (可選)
使用hdfs dfsadmin命令設(shè)置HDFS權(quán)限:
hdfs dfsadmin -setPermission "/path/to/directory"
第七步:驗(yàn)證配置
嘗試訪問HDFS:
hdfs dfs -ls /
如果成功,則表明HDFS安全策略配置成功。 請(qǐng)注意,這只是一個(gè)基本的配置指南,您可能需要根據(jù)您的具體環(huán)境和安全需求進(jìn)行調(diào)整。 確保所有節(jié)點(diǎn)都已正確配置,并且Kerberos密鑰表文件正確放置并擁有正確的權(quán)限。 任何錯(cuò)誤都可能導(dǎo)致HDFS無法啟動(dòng)或訪問。