在CentOS上配置HDFS(Hadoop分布式文件系统)的安全设置,通常涉及启用和配置Kerberos认证。以下是一个基本的步骤指南:
首先,确保你已经安装了Hadoop和Kerberos客户端。
sudo yum install hadoop krb5-workstation krb5-libs krb5-devel
编辑Kerberos配置文件 /etc/krb5.conf
,添加你的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
admin_server = kdc.your.realm.com
}
[domain_realm]
.your.realm.com = YOUR.REALM.COM
your.realm.com = YOUR.REALM.COM
使用 kadmin
工具创建HDFS相关的Kerberos主体。
sudo kadmin.local -q "addprinc -randkey hdfs/kdc.your.realm.com@YOUR.REALM.COM"
sudo kadmin.local -q "addprinc -randkey hdfs/hostname@YOUR.REALM.COM"
获取Kerberos票据并导出到文件中。
kinit hdfs/kdc.your.realm.com
klist
将票据导出到文件中:
kdestroy
kinit -kt /path/to/hdfs.keytab hdfs/hostname@YOUR.REALM.COM
编辑Hadoop的配置文件,启用Kerberos认证。
<configuration>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
</configuration>
<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>/path/to/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>/path/to/hdfs_datanode.keytab</value>
</property>
<property>
<name>dfs.namenode.http-kerberos.principal</name>
<value>hdfs/kdc.your.realm.com@YOUR.REALM.COM</value>
</property>
<property>
<name>dfs.namenode.http-kerberos.keytab</name>
<value>/path/to/hdfs_http.keytab</value>
</property>
</configuration>
启动HDFS和YARN服务。
start-dfs.sh
start-yarn.sh
使用 klist
命令验证Kerberos票据是否有效。
klist
通过以上步骤,你应该能够在CentOS上成功配置HDFS的安全设置,启用Kerberos认证。