有没有大佬有hadoop3.3版本的kerberos的配置,搞了几天没搞出来?

有没有大佬有hadoop3.3版本的kerberos的配置,搞了几天没搞出来?

展开
收起
真的很搞笑 2023-06-05 18:34:49 127 分享 版权
阿里云 AI 助理回答

配置Hadoop 3.3版本的Kerberos认证需要按照以下步骤进行操作。以下是详细的配置流程和注意事项,帮助您顺利完成配置。


1. 确认环境准备

在开始配置之前,请确保以下条件已满足: - 已创建并启用了Kerberos认证的集群。 - 已登录到集群主节点,并具备管理员权限。 - 集群中已安装Hadoop 3.3版本,并支持Kerberos身份认证功能。


2. 配置Kerberos服务端

2.1 安装和配置KDC(Key Distribution Center)

  1. 安装Kerberos服务
    在KDC服务器上安装Kerberos相关组件:

    yum install krb5-server krb5-libs krb5-workstation -y
    
  2. 修改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中的潜在问题。

  3. 初始化KDC数据库
    执行以下命令初始化KDC数据库:

    kdb5_util create -s -r YOUR_REALM.COM
    
  4. 启动KDC服务
    启动KDC和Admin服务:

    systemctl start krb5kdc
    systemctl start kadmin
    
  5. 创建管理员账户
    使用kadmin.local工具创建管理员账户:

    kadmin.local
    addprinc admin/admin@YOUR_REALM.COM
    

3. 配置Hadoop客户端

3.1 修改Hadoop核心配置文件

  1. 编辑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>
    
  2. 编辑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>
    
  3. 生成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
    
  4. 分发Keytab文件
    将生成的Keytab文件分发到所有NameNode和DataNode节点的指定路径。


4. 验证Kerberos配置

  1. 获取Ticket Granting Ticket (TGT)
    使用kinit命令获取TGT:

    kinit -kt /path/to/nn.keytab nn/_HOST@YOUR_REALM.COM
    
  2. 验证Ticket状态
    使用klist命令查看当前Ticket状态:

    klist
    
  3. 测试HDFS访问
    使用HDFS命令测试Kerberos认证是否生效:

    hdfs dfs -ls /
    

5. 常见问题排查

  1. 问题:无法连接KDC服务

    • 检查krb5.conf文件中的kdcadmin_server地址是否正确。
    • 确保KDC服务已启动并监听对应端口。
  2. 问题:Keytab文件无效

    • 确保Keytab文件路径正确且权限设置为可读。
    • 使用kinit命令重新生成Ticket。
  3. 问题:HDFS命令报错

    • 检查core-site.xmlhdfs-site.xml中的Kerberos配置是否完整。
    • 确保所有节点的时间同步,避免因时间偏差导致认证失败。

6. 注意事项

  • 高安全集群:如果使用YARN高安全特性,需额外配置ACL授权规则。
  • 跨域互信:如果涉及多个Kerberos域之间的互信,需配置krb5.conf中的[domain_realm]部分。
  • 第三方工具集成:如需与Flink、Spark等工具集成,请参考相关文档完成Kerberos认证配置。

通过以上步骤,您可以成功配置Hadoop 3.3版本的Kerberos认证。如果仍有问题,请检查日志文件(如/var/log/krb5kdc.log)以定位具体错误原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理