准备

系统配置

Cloudera Manager Server节点需要安装IPA admin libraries。命令如下:

yum install ipa-server

配置FreeIPA

FreeIPA的krb5.conf默认配置包含如下内容:

default_ccache_name = KEYRING:persistent:%{uid}

CDH不支持keyring credential cache,所以需要注释此配置。

另外,需要增加以下配置:

renew_lifetime = 7d
renewable = true

具体操作,在每个集群节点编辑**/etc/krb5.conf** 文件,修改**[libdefaults]** 域如下:

#default_ccache_name = KEYRING:persistent:%{uid}
renew_lifetime = 7d
renewable = true

在ipa server节点,重启ipa服务,命令如下:

ipactl restart

集群设置

如果YARN Resource Manager HA已经在一个非安全集群中激活,启用Kerberos之前,你需要清除StateStore。

步骤如下:

停止YARN服务,停止之后,进入YARN服务管理页,点开操作 ,点击格式化State Store ,完成后,关机命令页即可。

启用Kerberos

启动向导

一、欢迎

按照要求,配置集群,符合要求后,全部勾选,继续。

二、KDC信息

三、KRB5配置

不要使用Cloudera Manager管理krb5.conf,最好手动管理,更容易维护。

四、KDC Account Manager凭据

这里直接使用FreeIPA的管理员凭据即可。

五、命令详细信息

六、Configure Kerberos

在此之前,确保集群节点都已经被FreeIPA管理。FreeIPA客户端使用ipa-client。

七、命令详细信息

八、汇总

创建HDFS超级用户

启用Kerberos后,建议修改HDFS超级用户配置,例如修改成hdfssupergroup

FreeIPA添加用户

登陆FreeIPA Web UI,导航:身份 -> 用户 -> 添加。填写内容如下:(注意设置密码)

点击添加,即可创建用户。结果如下:

修改HDFS配置

配置搜索框输入Superuser Group 进行搜索,找到如下配置:

修改为hdfssupergroup ,保存,按照提示重启服务。

集群用户配置

启用Kerberos,需要为集群用户添加Kerberos principal 以使用集群。这里以用户 xingweidong 为例。

添加用户账号

过程类似上面添加hdfssupergroup,按照上述过程添加即可。结果如下:

准备集群

在HDFS上为用户创建用户目录。

切换到HDFS超级用户主体,初次登陆会要求重置密码,按照提示操作即可。

kinit hdfssupergroup

为用户创建用户目录:

hdfs dfs -mkdir /user/xingweidong
hdfs dfs -chown xingweidong /user/xingweidong

确认Kerberos安全工作正常

切换到集群用户主体:

kinit xingweidong

提交一个mapreduce测试任务:

yarn jar /opt/cloudera/parcels/CDH/jars/hadoop-mapreduce-examples-3.0.0-cdh6.3.2.jar pi 10 10000

一切运行正常,完美!

问题记录

问题一

按照上文配置,应该不会遇到这个问题了。

描述

Hue的Kerberos Ticket Renewer服务无法启动,报错如下:

Couldn't renew kerberos ticket in order to work around Kerberos 1.8.1 issue. Please check that the ticket for 'hue/gateway1.bigdata.zxxk.com@BIGDATA.ZXXK.COM' is still renewable:$ klist -f -c /var/run/hue/hue_krb5_ccache
If the 'renew until' date is the same as the 'valid starting' date, the ticket cannot be renewed. Please check your KDC configuration, and the ticket renewal policy (maxrenewlife) for the 'hue/gateway1.bigdata.zxxk.com@BIGDATA.ZXXK.COM' and `krbtgt' principals.
[08/Jul/2020 11:06:33 ] settings     INFO     Welcome to Hue 4.4.0

解决

编辑**/etc/krb5.conf** 文件,[libdefaults] 域下增加如下配置:

renew_lifetime = 7d
renewable = true

注意:

1、renew_lifetime需要和max_renewable_life保持一致。

2、每个节点的配置文件都需要增加这些配置,因为服务读取的是本地的krb5.conf,全部配置可以减少不必要的问题。

参考与分析

参考一:

https://community.cloudera.com/t5/Support-Questions/Error-on-kerberos-ticket-renewer-role-startup/m-p/31187

这个讨论里提到了解决方法,但是经过测试后,并没有解决问题,不过,我发现里面提到的一个信息很有价值,就是renew_lifetime需要和max_renewable_life保持一致,这个一致只需要保持换算后的时间是一致的即可。

参考二:

https://www.sysit.cn/blog/post/sysit/%E6%9B%B4%E6%94%B9CDH%E7%9A%84Kerberos%E8%AE%A4%E8%AF%81%E4%B8%BAFreeIPA

这里面提到了两个配置项,文中提到只需在ipa-server配置即可,如下:

renew_lifetime = 7d
renewable = true

综合两个参考的信息,经过多次调整测试,得出上面的解决方法。

问题二

在阿里云VPC主机上部署生产环境时遇到的。

描述

启用Kerberos过程中出现问题,报错如下:

/opt/cloudera/cm/bin/gen_credentials_ipa.sh failed with exit code 9 and output of <<
+ CMF_REALM=BIGDATA.ZXXK.COM
+ export PATH=/usr/kerberos/bin:/usr/kerberos/sbin:/usr/lib/mit/sbin:/usr/sbin:/usr/lib/mit/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
+ PATH=/usr/kerberos/bin:/usr/kerberos/sbin:/usr/lib/mit/sbin:/usr/sbin:/usr/lib/mit/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
+ kinit -k -t /var/run/cloudera-scm-server/cmf5054368646837616543.keytab cmadmin-5d5055fa@BIGDATA.ZXXK.COM
+ KEYTAB_OUT=/var/run/cloudera-scm-server/cmf3990789607448816448.keytab
+ PRINCIPAL=HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM
+ MAX_RENEW_LIFE=432000
+ '[' -z /etc/krb5.conf ']'
+ echo 'Using custom config path '\''/etc/krb5.conf'\'', contents below:'
+ cat /etc/krb5.conf
+ PRINC=HTTP
++ echo HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM
++ cut -d / -f 2
++ cut -d @ -f 1
+ HOST=utility1.bigdata.zxxk.com
+ set +e
+ ipa host-find utility1.bigdata.zxxk.com
+ ERR=0
+ set -e
+ [[ 0 -eq 0 ]]
+ echo 'Host utility1.bigdata.zxxk.com exists'
+ set +e
+ ipa service-find HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM
+ ERR=0
+ set -e
+ [[ 0 -eq 0 ]]
+ echo 'Principal HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM exists'
+ PRINC_EXISTS=yes
+ KADMIN='kadmin -k -t /var/run/cloudera-scm-server/cmf5054368646837616543.keytab -p cmadmin-5d5055fa@BIGDATA.ZXXK.COM -r BIGDATA.ZXXK.COM'
+ '[' 432000 -gt 0 ']'
+ kadmin -k -t /var/run/cloudera-scm-server/cmf5054368646837616543.keytab -p cmadmin-5d5055fa@BIGDATA.ZXXK.COM -r BIGDATA.ZXXK.COM -q 'modprinc -maxrenewlife "432000 sec" HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM'
Couldn't open log file /var/log/kadmind.log: Permission denied
modify_principal: Operation requires ``get'' privilege while getting "HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM".
+ KEYTAB_PATH=/tmp/HTTP_utility1.bigdata.zxxk.com.keytab
++ ipa env server
++ tr -d '[:space:]'
++ cut -f2 -d:
+ IPA_HOST=utility1.bigdata.zxxk.com
+ [[ yes = \y\e\s ]]
+ [[ HTTP/ = \H\T\T\P\/ ]]
+ [[ utility1.bigdata.zxxk.com = \u\t\i\l\i\t\y\1\.\b\i\g\d\a\t\a\.\z\x\x\k\.\c\o\m ]]
+ echo 'Attempting to retrieve keytab for IPA HTTP principal. To grant the right to do so, run:\n ' '\tipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa@BIGDATA.ZXXK.COM'
+ ipa-getkeytab -r --principal=HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM --keytab=/tmp/HTTP_utility1.bigdata.zxxk.com.keytab
Failed to parse result: Insufficient access rightsFailed to get keytab>>

解决

ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa

其中cmadmin-5d5055fa是Cloudera Manager在FreeIPA中创建的用户,可以从FreeIPA中查看,用户名格式:cmadmin-<random_id>
注意--users指定的用户名不要带域名,下面的分析过程对此进行了解释。

执行成功后,重试启用Kerberos失败的环节,继续。
如果已退出启用Kerberos向导,则可以在Cloudera Manager的 安全 -> Kerberos凭据 页面,执行 生成丢失的凭据

分析过程

经过观察报错信息,失败的环节是:

ipa-getkeytab -r --principal=HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM --keytab=/tmp/HTTP_utility1.bigdata.zxxk.com.keytab
Failed to parse result: Insufficient access rights

这里是Cloudera Manager通过ipa-getkeytab命令获取keytab,结果因为无效的访问权限(Insufficient access rights)而失败。
失败信息上面一条提示很重要:

+ echo 'Attempting to retrieve keytab for IPA HTTP principal. To grant the right to do so, run:\n ' '\tipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa@BIGDATA.ZXXK.COM'

这个提示很详细,Cloudera Manager计划检索keytab,并说明了授权的方法。其中cmadmin-5d5055fa@BIGDATA.ZXXK.COM是Cloudera Manager创建的用户。

而失败的环节就是因为无效的访问权限而失败的,所以尝试使用提示的命令进行授权:

使用FreeIPA admin主体权限执行命令,登录主体的命令:kinit admin

ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa@BIGDATA.ZXXK.COM

不过直接执行这个命令会有问题,报错如下:

[root@utility1 ~]# ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa@BIGDATA.ZXXK.COM主机名: HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM主体别名: HTTP/utility1.bigdata.zxxk.com@BIGDATA.ZXXK.COM证书: MIIE5TCCA82gAwIBAgIBCTANBgkqhkiG9w0BAQsFADA7MRkwFwYDVQQKDBBCSUdEQVRBLlpYWEsuQ09NMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjAwNzMxMDExODU2WhcNMjIwODAxMDExODU2WjA/MRkwFwYDVQQKDBBCSUdEQVRBLlpYWEsuQ09NMSIwIAYDVQQDDBl1dGlsaXR5MS5iaWdkYXRhLnp4eGsuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx+9cmjs3CD/wL8dJqk7xji1jOtGIpdTagReVkyuHx639AjZzDyatwihPGLnVCg/4lmKeZ3lwrmiQnfLk5e2i4yIwKrpgKdrA6tp/b9cAtAm1Aq3VYpWMbih2wIgVbuVKWP/I8TSwqNfQ9ZLj1PPuApNYmoNcwDxGSBXLXcaUsiVHY1Q+x68kBxB/WFTbeBjPgremgSAojdNiLVIqWXQQXaytBX1RG9npU7COJtlnHnbwwzimKsHnCzdNza6jnzts776P4M6s7yrvhewXDJGmMIAj0PgXCvfdMudx+OVjJFkIzSBIw/7Sl5Fmkps5u6pclwXN+PVc5iUYOpj8pYJBnwIDAQABo4IB7jCCAeowHwYDVR0jBBgwFoAUNJYYJQKe+0MhNjglFCqa4pvuDLMwQgYIKwYBBQUHAQEENjA0MDIGCCsGAQUFBzABhiZodHRwOi8vaXBhLWNhLmJpZ2RhdGEuenh4ay5jb20vY2Evb2NzcDAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMHsGA1UdHwR0MHIwcKA4oDaGNGh0dHA6Ly9pcGEtY2EuYmlnZGF0YS56eHhrLmNvbS9pcGEvY3JsL01hc3RlckNSTC5iaW6iNKQyMDAxDjAMBgNVBAoMBWlwYWNhMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHQYDVR0OBBYEFBrWhdEchPrA8DUCRLxhMZIxcf0HMIG3BgNVHREEga8wgayCGXV0aWxpdHkxLmJpZ2RhdGEuenh4ay5jb22gPwYKKwYBBAGCNxQCA6AxDC9IVFRQL3V0aWxpdHkxLmJpZ2RhdGEuenh4ay5jb21AQklHREFUQS5aWFhLLkNPTaBOBgYrBgEFAgKgRDBCoBIbEEJJR0RBVEEuWlhYSy5DT02hLDAqoAMCAQGhIzAhGwRIVFRQGxl1dGlsaXR5MS5iaWdkYXRhLnp4eGsuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCR+Kr0WjbiS5FyagxDPCRS1fGlzXzeQraXw2mI6lxX2RHy1dBiAjqRR3jOzJArKanUBSlTDyJymoQhd3Kc9cZ6k4eAoEZIXONzo6e3dT6yc0mplK/9AvNFUBlLAajfJmK50ay7OoTsLY3jWaP2aadZzQTLyNsxV9DHcLHMETI3jJ8D3P61cB78tc9X781JWFvPB8NYvHqI1XvpcYfmMUdWleSkd/FWjHqq/ymVGG7Sgy4eCrhZ2b903Froa0fiMXWEVa1rUQ8G4fFBx67InVN1v9Z675lI95aZCIpL2k9onYDpmTme+YiybL+11JE3KDynjlMydS13JEjWNEMs4wRIManaged by: utility1.bigdata.zxxk.com不允许检索keytab: member user: cmadmin-5d5055fa@BIGDATA.ZXXK.COM: no such entrymember group: member host: member host group:
---------
已添加的成员数 0
---------

可以看到核心提示:

cmadmin-5d5055fa@BIGDATA.ZXXK.COM: no such entry

cmadmin-5d5055fa@BIGDATA.ZXXK.COM是用户cmadmin-5d5055fa的带域名形式,尝试去掉域名,执行成功,命令如下:

ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM  --users=cmadmin-5d5055fa

CDH6.3.2集成FreeIPA相关推荐

  1. gitlab 将管理员权限移交给ldap账户_CDPDC中Atlas集成FreeIPA的LDAP认证

    文档编写目的Cloudera从CM6.3版本开始,引入了Red Hat IdM来做整个集群的认证,Red Hat IdM对应的软件为FreeIPA,在本文中描述如何使用FreeIPA来做CDP-DC集 ...

  2. CDH6.3.2 集成 tez0.9.1

    目录 1 参考: 2 我的环境: 3  安装maven 3.1 下载maven 3.2上传解压 3.3 配置 MVN_HOMR 3.4 验证maven 4 安装protobuf-2.5.0.tar.g ...

  3. CDH平台部署规划方案

    此方案包含部分实施要点,作为部署实施参考.主要针对RHEL/Centos7.x系统,其他系统可能会有不同. 主机配置章节包含了部分针对Hadoop的操作系统优化. 服务 版本 操作系统 CentOS ...

  4. centos7 如何安装部署k8s_如何在centos7上安装FreeIPA的客户端

    1.文档编写目的 在前面的文章<如何在Redhat7上安装FreeIPA>介绍了FreeIPA的安装及使用,本篇文章主要介绍如何在RedHat7上安装FreeIPA的客户端并配置. · 2 ...

  5. Flink 1.12 CDH 6.3 集成

    之前记录的:Flink 1.9 CDH 6.3 集成 有些下载链接可能被官方关闭了,这里介绍1.12版本集成,并把安装包下载地址换为百度网盘链接 下载安装包 链接: https://pan.baidu ...

  6. 如何在centos7上安装FreeIPA的客户端

    2019独角兽企业重金招聘Python工程师标准>>> 1.文档编写目的 在前面的文章<如何在Redhat7上安装FreeIPA>介绍了FreeIPA的安装及使用,本篇文 ...

  7. CDH 6.3.1 集成Atlas

    备注: 安装之前 先要准备好 JDK1.8 Zookeeper Kafka Hbase Solr 文章目录 一. Atlas下载 二.ATLAS源码编译 2.1 Intellij IDEA 导入Mav ...

  8. cdh的集成phoenix安装_环境篇:Kylin3.0.1集成CDH6.2.0

    环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...

  9. Kylin3.1.1集成CDH6.2.1

    Kylin3.1.1集成CDH6.2.1 说明 目前集群用的cdh6.2.1的,之前集群用的CDH5.7的版本集成过apache-kylin-2.6.6-bin-cdh57的KYLIN,这次版本升级挑 ...

最新文章

  1. LeetCode简单题之找出数组的最大公约数
  2. 疫苗有效,先抛股票,今日官宣94.5%结果的Moderna高管早有信心
  3. SQL Server 预编译执行SQLs
  4. 在MSBuild.exe中使用条件编译(Conditional Compile)
  5. k8s和harbor的集成_爱威尔-基于kubernetes集群的项目持续集成(gitlab+harbor+Jenkins)安装...
  6. 神策数据携手百丽国际,专注品牌零售行业数字化未来
  7. 企业级UML/MDA工具Trufun 2007系列发布!
  8. Spark广播变量使用示例
  9. GitHub之深入解析如何对项目做出贡献
  10. bzoj2049 [Sdoi2008]Cave 洞穴勘测——LCT
  11. hdoj 1257(暴力)
  12. linux 导出 excel文件名乱码,excel导出,文件名称中文乱码问题 · 大腿的博客
  13. 修改服务器Apache-Coyote/1.1标识为自定义内容
  14. zabbix server报错:FATAL: password authentication failed for user zabbix
  15. mfc 制作不同的文档模板mdi不同的子窗体_法律行业python教程——利用python批量制作律师函...
  16. QT表格QTableWidget在win10下纵横表头无分隔线的问题
  17. 2022道路运输企业安全生产管理人员操作证考试题及在线模拟考试
  18. LVGL笔记11--lv_btn按钮
  19. 对比Excel两个sheet的数据是否相同
  20. 计算机休眠唤醒后 网络受限,Windows 10中的睡眠/唤醒/休眠状态后,Wi-Fi网络消失...

热门文章

  1. Android SurfaceView实战 带你玩转flabby bird
  2. 抖音seo源码账号矩阵程序开发搭建,优化排名置顶。
  3. A级项目发布!2018中国区块链行业白皮书 | 鲸准研究院出品
  4. python 下载公众号文章_Python爬虫实现的微信公众号文章下载器
  5. 微信能打开淘宝链接20多天后,电商怎样了?
  6. U8调拨单API接口 --
  7. 干货分享!BMS电池管理系统主动均衡设计案例
  8. 安装micronet遇到的问题及解决
  9. 云服务器 Redis 集群搭建
  10. 这篇文章带你彻底搞定哈希表!