6.在Winodws下安装及使用Kerberos并访问CDH

6.1 介绍

  • Windows Server2008 R2(windows的内核版本是6.1,与windows 7相同)下安装Kerberos Client及FireFox下HTTP访问HDFS、Yarn、Hive、HBase等Hadoop服务的Web UI(如Namenode的50070,Yarn的8088)的过程。
  • 基于以下环境:
    • CDH环境已搭建并正常运行
    • HDFS、Yarn、HBase、Hive等组件已安装部署
    • 集群已完成Kerberos的配置,并正常使用
  • 以下是本次操作环境版本:
    • 操作系统:Redhat7.2
    • CM版本:CM5.11.1
    • CDH版本:CDH5.11.1
    • 采用ec2-user对集群进行部署
  • 安装主要分为以下几步:
    • 在Windows Server2008 R2 64位上安装Kerberos Client。
    • 在Windows下使用kinit测试。
    • 通过keytab在Windows下进行kinit操作。
    • 配置FireFox。
    • 验证服务是否正常访问。

6.2 Kerberos安装

  • 在Kerberos官网下载安装包
    • 下载地址:http://web.mit.edu/kerberos/dist/
  • 按步骤进行安装

  • 配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件
    • 将安装KDC Server的服务器上的/etc/krb5.conf配置文件中的部分内容拷贝到该文件中
    • 注意:不要直接替换krb5.ini文件,否则会出现文件格式问题,建议拷贝部分内容到krb5.ini文件中,然后保存文件
  • 配置完成后,启动MIT Kerberos客户端,如下图所示:

6.3 在Win下使用kinit测试

  • 在KDC Server上创建一个用户
[root@cdh178 ~]# kadmin.local 
Authenticating as principal solr/admin@MACRO.COM with password.
kadmin.local:  addprinc test_krb
WARNING: no policy specified for test_krb@MACRO.COM; defaulting to no policy
Enter password for principal "test_krb@MACRO.COM": 
Re-enter password for principal "test_krb@MACRO.COM": 
Principal "test_krb@MACRO.COM" created.
  • 测试正常后,在Winodw端,通过MIT Kerberos客户Get Ticket
    • 在如下列表中可以看到获取的ticket
  • 销毁获取到的Ticket
  • 命令行下初始化
    • 在客户端可以看到初始化成功的Ticket
  • 命令行下kdestroy
    • 客户端数据已kdestroy

6.4 使用keytab文件测试Kerberos

  • 在KDC Server上生成keytab文件,使用test_krb@MACRO.COM账号
[root@cdh178 ~]# kadmin.local 
Authenticating as principal test_krb/admin@MACRO.COM with password.
kadmin.local:  xst -norandkey -k test_krb.keytab test_krb@MACRO.COM
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type des3-cbc-sha1 added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type arcfour-hmac added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type camellia256-cts-cmac added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type camellia128-cts-cmac added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type des-hmac-sha1 added to keytab WRFILE:test_krb.keytab.
Entry for principal test_krb@MACRO.COM with kvno 1, encryption type des-cbc-md5 added to keytab WRFILE:test_krb.keytab.
  • 测试成功后,将生成的keytab文件拷贝到本地Windows环境,进行kinit测试
  • 初始化成功,在客户端查看

6.5 配置浏览器访问

  • 以FireFox浏览器为例,打开浏览器,在地址栏输入about:config
  • 修改配置
network.negotiate-auth.trusted-uris = cdh178.macro.com,cdh177.macro.com,cdh176.macro.com
network.auth.use-sspi = false
  • network.negotiate-auth.trusted-uris这个参数配置的是访问服务的hostname,配置多个的话以“,”分隔

6.6 测试访问CDH服务

6.6.1 测试访问HDFS和Yarn

  • 由于此时未初始化HDFS的Ticket,所以无法访问
  • 进入到/var/run/cloudera-scm-agent目录下,到最新的HDFS的目录中找到HDFS的keytab文件

  • 测试HDFS的keytab文件是否能够正常使用
[root@cdh177 1298-hdfs-NAMENODE]# kinit -kt hdfs.keytab hdfs/cdh177.macro.com@MACRO.COM
[root@cdh177 1298-hdfs-NAMENODE]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: hdfs/cdh177.macro.com@MACRO.COM

Valid starting       Expires              Service principal
08/04/2019 10:08:39  08/05/2019 10:08:39  krbtgt/MACRO.COM@MACRO.COM
    renew until 08/09/2019 10:08:39
  • 初始化成功后,将HDFS的keytab文件拷贝到Windows本地,并进行kinit

  • 再次通过游览器访问HDFS服务,能够正常访问
  • 访问Yarn资源管理服务,也能访问正常

6.6.2 keytab合并使用

  • 将需要合并的keytab文件同意的放在同一个目录下
  • 使用ktutil命令合并keytab文件,操作如下:
[root@cdh177 0804]# ktutil 
ktutil:  rkt hbase.keytab
ktutil:  rkt hdfs.keytab
ktutil:  rkt hive.keytab
ktutil:  rkt yarn.keytab
ktutil:  wkt test-new.keytab
ktutil:  exit
  • keytab合并成功,默认生成的keytab文件权限是600,如果事应非root用户执行需要注意权限问题
  • 将生成的合并后的keytab文件拷贝到本地Windows环境进行测试
    • 使用hdfs凭证进行初始化
      • 访问HDFS服务成功
    • 使用HBase凭证进行初始化
      • 访问HDFS服务成功
    • 使用yarn凭证进行初始化
      • 访问HDFS服务成功
  • 通过实验可以看出,使用合并后的keytab文件,无论用哪个系统用户的身份进行认证,配置成功后都能够通过浏览器访问服务的页面
  • 总结
    • Windows本地的krb5.ini文件不能直接使用krb5.conf文件更名替换,否则会出现文件格式的问题导致MIT Kerberos客户端无法正常启动。
    • 在生成keytab文件时需要加上”-norandkey”参数,否则会导致kinit时密码错误。
    • 在Windows本地安装了Java环境后,由于Java里也有kinit、klist等命令,所以需要在Path环境变量里面,将Kerberos的环境变量位置调整到Java环境变量的前面,保证在Windows本地使用的kinit、klist等命令是使用的Kerberos的命令,否则就会导致命令冲突
      • 如下图,将Kerberos的环境变量调整到最前面即可。

大数据视频推荐:
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值