背景说明:
    在Ambari平台上启用Kerberos之后,一些服务的Web UI 如:Namenode:50070、Yarn Web UI、spark history UI等快速链接大部分都是需要Kerberos认证才可以继续使用的。
    像这种情况,就不能在Linux上进行操作.需要在Windows上安装Kerberos客户端,再进行浏览器配置才可以访问Hadoop相关服务的Web UI界面。

    安装配置主要分为以下几步

    1. 在windows上安装Kerberos客户端,并修改本地krb5.ini文件
    2. 配置hosts文件,添加集群ip映射
    3. 配置浏览器
    4. Kerberos认证
      一、安装配置Kerberos客户端
      下载 MIT Kerberos for Windows 4.1
      地址:http://web.mit.edu/kerberos/dist/
      Windows 64位:64-bit MSI Installer kfw-4.1-amd64.msi, 10812k.
      根据自己windows操作系统来选择对应版本

    image.png

    1. 客户端安装

    image.png
    image.png
    选择Typical,点击下一步。
    点击完成。后面会出现提示框,是否重启计算机,选择No就可。

    默认安装路径:
    MIT Kerberos软件的安装按照向导一步步操作即可,其安装目录默认为“C:\Program Files\MIT\Kerberos”。
    image.png
    krb5.ini配置
    文件路径:C:\ProgramData\MIT\Kerberos5\krb5.ini
    image.png
    从HDP KDC Server节点的/etc目录下拷贝krb5.conf文件MIT Kerberos软件的安装目录。
    将Kerberos KDC所在主机的/etc/krb5.conf文件有选择的粘贴到windows的krb5.ini里面
    [libdefaults]
    defaultrealm = DLAKE.COM
    dns_lookup_realm = false
    dns_lookup_kdc = true
    rdns = false
    ticket_lifetime = 24h
    forwardable = true
    udp_preference_limit = 0
    #default_ccache_name = KEYRING:persistent:%{uid}
    #default_ccache_name = FILE:/tmp/krb5cc
    %{uid}
    [realms]
    DLAKE.COM = {
    kdc = ipa1.dlake.com:88
    master_kdc = ipa1.dlake.com:88
    admin_server = ipa1.dlake.com:749
    kdc = ipa2.dlake.com:88
    master_kdc = ipa2.dlake.com:88
    admin_server = ipa2.dlake.com:749
    default_domain = dlake.com
    #pkinit_anchors = FILE:/var/lib/ipa-client/pki/kdc-ca-bundle.pem
    #pkinit_pool = FILE:/var/lib/ipa-client/pki/ca-bundle.pem
    }
    说明:krb5.ini是系统文件 需要admin账户权限修改。
    windows10以管理员身份运行的设置方法:
    过计算机管理永久开启Administrator管理员账号登录
    右键桌面的“计算机” - 选择“管理”;依次展开“计算机管理(本地) - 系统工具 - 本地用户和组 - 用户”在右边的文件里面找到“Administrator”并双击它,在“常规”选项下将“账户已禁用”的勾去掉,这样就开启了 Administrator(管理员)账户。
    image.png
    配置MIT Kerberos环境变量
    配置如下环境变量:
    变量名:KRB5_CONFIG
    变量值:C:\ProgramData\Kerberos\krb5.ini
    说明:ProgramData在window中是隐藏文件,需要打开隐藏文件、
    注:环境变量KRB5_CONFIG的变量值为krb5.ini文件存放路径
    image.png
    变量名:KRB5CCNAME
    变量值:D:\tmp\krb5cc_0
    说明:环境变量KRB5CCNAME的变量值为HDP集群中某个用户或大数据服务对应用户的票据缓存文件存放路径。在Windows操作系统下创建目录,用来存放从HDP集群中拷贝的票据缓存文件,此处目录为D:\tmp。
    在MIT客户端工具中认证的话,会自动在这个目录中生成krb5cc_0该文件
    image.png
    image.png
    票据缓存文件获取实例:
    [root@hdp2 ~]#
    kinit -kt /etc/security/keytabs/hdfs.headless.keytab hdfs-hdp1-auth@DLAKE.COM
    [root@hdp2 ~]# klist
    Ticket cache: FILE:/tmp/krb5cc_0 (注:该文件拷贝至Windows环境的用户票据缓存文件存放路径即可)
    Default principal: hdfs-hdp1-auth@DLAKE.COM

    配置hosts文件
    文件路径:C:\Windows\System32\drivers\etc\hosts

    添加ip的映射
    说明:如果客户端不访问ipa的话 ipa的ip与hostname映射可以不用加
    10.167..17 ipa1.dlake.com ipa1
    10.167.
    .18 ipa2.dlake.com ipa2
    10.167..8 hdp1.dlake.com hdp1
    10.167.
    .16 hdp2.dlake.com hdp2
    10.167.*.15 hdp3.dlake.com hdp3

    Kerberos认证
    有两种方式:
    直接认证Kerberos主体,但得手动输入密码
    通过keytab密钥认证Kerberos主体,不需要手动输入密码,但前提是密钥要与Kerberos主体对应。
    第一种认证方式
    在Kerberos KDC所在主机上创建一个主体票据
    如: kadmin.local “addprinc zhangsan/zhangsan”

    有了主体票据之后,双击打开Kerberos客户端,获取Ticket。
    利用MIT Kerberos获取Kerberos票据
    启动MIT Kerberos,点击“Home→Get Ticket”,输入MIT Kerberos环境变量配置中所使用的Kerberos用户对应的Principal及其密码。如下图:
    image.png
    输入密码,登录成功后。如下图:
    image.png
    也可以在windows命令行内执行
    客户端使用klist -kte命令来查看keytab,然后使用kinit命令认证,如下图所示:
    image.png
    kinit -e
    image.png
    kinit hdpadmin@DLAKE.COM
    image.png
    cmd 命令行登录,会有该异常。后续优化

    配置浏览器
    由于技术有限,目前只实现如何配置火狐Firefox浏览器,在火狐浏览器上访问Hadoop的Web UI。
    打开浏览器,在地址栏输入about:config,如下图所示:
    image.png
    点击接受风险并继续,在搜索栏内,搜索network.negotiate-auth.trusted-uris,双击将其值修改为集群节点ip或主机名,注意:这里如果修改为主机名的话,到时候访问的话,就以主机名访问,ip的话会失效,不起作用。
    image.png
    设置:
    network.negotiate-auth.trusted-uris 为集群hostname
    hdp1.dlake.com,hdp2.dlake.com,hdp3.dlake.com
    如下图:
    image.png
    搜索network.auth.use-sspi,将值改为false。(默认是true)
    image.png
    测试访问web ui
    经过如上步骤,启动Firefox浏览器,便可以正常访问启用了Kerberos的HDP集群。
    Hdfs 集群web ui:http://hdp1.dlake.com:50070
    image.png
    Yarn ResourcesManager web ui:http://hdp1.dlake.com:8088
    image.png
    image.png
    image.png
    Ranger web ui: http://hdp2.dlake.com:6080
    image.png

    Spark History web ui: http://hdp1.dlake.com:18081/
    image.png
    MR JobHistory UI :http://hdp1.dlake.com:19888/
    image.png