有没有大佬有hadoop3.3版本的kerberos的配置,搞了几天没搞出来?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
配置Hadoop 3.3版本的Kerberos认证需要按照以下步骤进行操作。以下是详细的配置流程和注意事项,帮助您顺利完成配置。
在开始配置之前,请确保以下条件已满足: - 已创建并启用了Kerberos认证的集群。 - 已登录到集群主节点,并具备管理员权限。 - 集群中已安装Hadoop 3.3版本,并支持Kerberos身份认证功能。
安装Kerberos服务
在KDC服务器上安装Kerberos相关组件:
yum install krb5-server krb5-libs krb5-workstation -y
修改Kerberos核心配置文件/etc/krb5.conf
编辑krb5.conf
文件,添加或确认以下内容:
[libdefaults]
udp_preference_limit = 1
default_realm = YOUR_REALM.COM
[realms]
YOUR_REALM.COM = {
kdc = <kdc_server_hostname>:88
admin_server = <admin_server_hostname>:749
}
[domain_realm]
.yourdomain.com = YOUR_REALM.COM
yourdomain.com = YOUR_REALM.COM
注意:udp_preference_limit = 1
用于禁用UDP协议,避免Hadoop中的潜在问题。
初始化KDC数据库
执行以下命令初始化KDC数据库:
kdb5_util create -s -r YOUR_REALM.COM
启动KDC服务
启动KDC和Admin服务:
systemctl start krb5kdc
systemctl start kadmin
创建管理员账户
使用kadmin.local
工具创建管理员账户:
kadmin.local
addprinc admin/admin@YOUR_REALM.COM
编辑core-site.xml
在Hadoop的core-site.xml
文件中添加以下配置:
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
编辑hdfs-site.xml
在hdfs-site.xml
文件中添加以下配置:
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>nn/_HOST@YOUR_REALM.COM</value>
</property>
<property>
<name>dfs.namenode.keytab.file</name>
<value>/path/to/nn.keytab</value>
</property>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>dn/_HOST@YOUR_REALM.COM</value>
</property>
<property>
<name>dfs.datanode.keytab.file</name>
<value>/path/to/dn.keytab</value>
</property>
生成Keytab文件
使用kadmin.local
工具为HDFS服务生成Keytab文件:
ktadd -k /path/to/nn.keytab nn/_HOST@YOUR_REALM.COM
ktadd -k /path/to/dn.keytab dn/_HOST@YOUR_REALM.COM
分发Keytab文件
将生成的Keytab文件分发到所有NameNode和DataNode节点的指定路径。
获取Ticket Granting Ticket (TGT)
使用kinit
命令获取TGT:
kinit -kt /path/to/nn.keytab nn/_HOST@YOUR_REALM.COM
验证Ticket状态
使用klist
命令查看当前Ticket状态:
klist
测试HDFS访问
使用HDFS命令测试Kerberos认证是否生效:
hdfs dfs -ls /
问题:无法连接KDC服务
krb5.conf
文件中的kdc
和admin_server
地址是否正确。问题:Keytab文件无效
kinit
命令重新生成Ticket。问题:HDFS命令报错
core-site.xml
和hdfs-site.xml
中的Kerberos配置是否完整。krb5.conf
中的[domain_realm]
部分。通过以上步骤,您可以成功配置Hadoop 3.3版本的Kerberos认证。如果仍有问题,请检查日志文件(如/var/log/krb5kdc.log
)以定位具体错误原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。