• 管理Kerberized Hadoop集群


                管理Kerberized Hadoop集群

                                  作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

      部署好Kerberized集群(也可以成为Kerberos集群)后,还有必要了解一下管理Kerberos的一些重要工具,这样便于大数据运维工程师后期维护集群。

    一.Kerberos工具和守护程序概述

      Kerberos提供了几个有关KDC的实用程序,如下所示:
        kdb5_util:
          这是Kerberos数据库维护程序,它可以帮助创建Kerberos域并执行其他任务,如更新和查看keytab文件,导入和导出数据库信息等。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/kdb5_util.html
        kpasswd:
          使用此实用程序可更改用户密码。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/user/user_commands/kpasswd.html
        klist:
          使用此实用程序可查看客户端本地的Kerberos凭证缓存。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/user/user_commands/klist.html
        kadmin.local:
          此管理实用程序用于直接访问Kerberos数据库。它启用存储Kerberos数据库的服务器的root用户来更新Kerberos数据库。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/kadmin_local.html
        kadmin:
          此使用程序用于远程连接kdamind服务器并执行相应的操作。
          kadmin和kadmin.local是Kerberos V5管理系统的命令行界面。它们提供几乎相同的功能。区别在于kadmin.local直接访问KDC数据库,而kadmin使用kadmind执行操作。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/kadmin_local.html
        kinit:
          此Kerberos客户端使用Kerberos进行身份验证并检索TGT。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/user/user_commands/kinit.html
        kdestroy:
          此命令运行用户清除其票据缓存。如下图所示,随着时间的推移,用户在其票据缓存中积累了一些过期票据,使用kdestroy命令可清理这些票据。一旦用户清除了票据缓存,用户就需要使用kinit命令再次进行身份验证。
          建立新配置时(例如将票据由"nn/hadoop101.yinzhengjie.com@YINZHENGJIE.COM"更换为"root/admin@YINZHENGJIE.COM"),也可以使用kdestory命令。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/user/user_commands/kdestroy.html
    
      除了上面提到的几个程序,我们还应该熟悉两个关键的Kerberos守护进程:
        kadmind:
          是Kerberos管理服务器守护程序,它可以执行一些操作,例如添加新主体和更改密码。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/kadmind.html
        krb5kdc:
          守护程序代表Kerberos AS,负责验证用户和授权票据。
          博主推荐阅读:
            https://web.mit.edu/kerberos/krb5-latest/doc/admin/admin_commands/krb5kdc.html

    二.使用Active Directory设置单向信任

      一旦配置了Kerberos Hadoop集群,必须通过Kerberos将所有用户配置为用户主体(UPN)。如果有数百或者几十位用户,该怎么办?
    
      已经在企业LDAP目录(如Active Director,简称"AD")中对用户进行了集中管理。我们只需在Hadoop集群中的AD域可KDC域之间建立单向信任关系即可。

      服务主体(SPN),如yarn,hdfs和mapred可以在本地KDC内的Hadoop集群中定义。由于服务器主体会产生大量的流量,特别是当所有DataNodes一起启动时,最好不要在公司AD上设置它们,以避免服务拒绝服务。

      通常,Hadoop利用Linux(或其他OS)系统中定义的用户组来验证Hadoop集群内的用户。但是Active Directory还使用安全组来管理用户凭据和角色。因此,可以在Active Directory中设置用户和角色管理。

      当用户想要连接Hadoop集群时,他们首先联系AD,AD为用户发放Kerberos票据。使用存储在Hadoop集群中的KDC中定义的映射规则,将用户ID映射到适当的用户组。

      用户和组信息在AD和Hadoop KDC之间是同步的,以使Hadoop守护程序能够从本地KDC检索组信息,而无需与AD联系。总结步骤如下:
        (1)用户提供凭据进行AD验证;
        (2)AD验证用户并向用户发放Kerberos票据;
        (3)用户将Kerberos票据显示给Hadoop集群;
        (4)Hadoop守护进程从AD获取组信息来授权用户访问。在用户ID和Kerberos主体不同的情况下,Hadoop从core-site.xml文件中查找用户ID与用户主体的映射。

      这里需要注意的是上面的第2步骤。Hadoop如何接受AD颁发的票据?需要在AD和本地Hadoop KDC之间建立单向跨域信任关系,则所有Hadoop守护进程将信任AD发放的所有票据。

    三.将AD于Hadoop集成以建立单向信任关系

      以下简要说明如何将AD与Hadoop集成,并在AD和本地Hadoop KDC之间建立单向信任关系。请注意,其中一些任务由AD管理员执行。执行这些步骤之前,请确保将AD Kerberos域(企业域)添加到krb5.conf文件的<realms>下面。

      未完待续......
  • 相关阅读:
    JS设计模式——工厂模式详解
    JS 使用const声明常量的本质(很多人都有误解)
    模拟ES6中的Promise实现,让原理一目了然
    JS设计模式——观察者模式(通俗易懂)
    JS设计模式——单例模式剖析
    C#播放文字内容
    通过自定义扩展方法DistinctBy实现去重
    C#缓存HttpRuntime.Cache
    Oracle中dblink的使用
    Oracle查询最近执行的sql脚本
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/13694129.html
Copyright © 2020-2023  润新知