Cloudera Manager Server节点需要安装IPA admin libraries。命令如下:
yum install ipa-server
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 ,完成后,关机命令页即可。
按照要求,配置集群,符合要求后,全部勾选,继续。
不要使用Cloudera Manager管理krb5.conf,最好手动管理,更容易维护。
这里直接使用FreeIPA的管理员凭据即可。
在此之前,确保集群节点都已经被FreeIPA管理。FreeIPA客户端使用ipa-client。
启用Kerberos后,建议修改HDFS超级用户配置,例如修改成hdfssupergroup 。
登陆FreeIPA Web UI,导航:身份 -> 用户 -> 添加。填写内容如下:(注意设置密码)
点击添加,即可创建用户。结果如下:
配置搜索框输入Superuser Group 进行搜索,找到如下配置:
修改为hdfssupergroup ,保存,按照提示重启服务。
启用Kerberos,需要为集群用户添加Kerberos principal 以使用集群。这里以用户 xingweidong 为例。
过程类似上面添加hdfssupergroup,按照上述过程添加即可。结果如下:
在HDFS上为用户创建用户目录。
切换到HDFS超级用户主体,初次登陆会要求重置密码,按照提示操作即可。
kinit hdfssupergroup
为用户创建用户目录:
hdfs dfs -mkdir /user/xingweidong
hdfs dfs -chown xingweidong /user/xingweidong
切换到集群用户主体:
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/[email protected]' 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/[email protected]' 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,全部配置可以减少不必要的问题。
参考一:
这个讨论里提到了解决方法,但是经过测试后,并没有解决问题,不过,我发现里面提到的一个信息很有价值,就是renew_lifetime需要和max_renewable_life保持一致,这个一致只需要保持换算后的时间是一致的即可。
参考二:
这里面提到了两个配置项,文中提到只需在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 [email protected]
+ KEYTAB_OUT=/var/run/cloudera-scm-server/cmf3990789607448816448.keytab
+ PRINCIPAL=HTTP/[email protected]
+ 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/[email protected]
++ 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/[email protected]
+ ERR=0
+ set -e
+ [[ 0 -eq 0 ]]
+ echo 'Principal HTTP/[email protected] exists'
+ PRINC_EXISTS=yes
+ KADMIN='kadmin -k -t /var/run/cloudera-scm-server/cmf5054368646837616543.keytab -p [email protected] -r BIGDATA.ZXXK.COM'
+ '[' 432000 -gt 0 ']'
+ kadmin -k -t /var/run/cloudera-scm-server/cmf5054368646837616543.keytab -p [email protected] -r BIGDATA.ZXXK.COM -q 'modprinc -maxrenewlife "432000 sec" HTTP/[email protected]'
Couldn't open log file /var/log/kadmind.log: Permission denied
modify_principal: Operation requires ``get'' privilege while getting "HTTP/[email protected]".
+ 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 [email protected]'
+ ipa-getkeytab -r --principal=HTTP/[email protected] --keytab=/tmp/HTTP_utility1.bigdata.zxxk.com.keytab
Failed to parse result: Insufficient access rights
Failed 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/[email protected] --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 [email protected]'
这个提示很详细,Cloudera Manager计划检索keytab,并说明了授权的方法。其中[email protected]是Cloudera Manager创建的用户。
而失败的环节就是因为无效的访问权限而失败的,所以尝试使用提示的命令进行授权:
使用FreeIPA admin主体权限执行命令,登录主体的命令:kinit admin
ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM --users=[email protected]
不过直接执行这个命令会有问题,报错如下:
[root@utility1 ~]# ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM [email protected]
主机名: HTTP/[email protected]
主体别名: HTTP/[email protected]
证书: MIIE5TCCA82gAwIBAgIBCTANBgkqhkiG9w0BAQsFADA7MRkwFwYDVQQKDBBCSUdEQVRBLlpYWEsuQ09NMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjAwNzMxMDExODU2WhcNMjIwODAxMDExODU2WjA/MRkwFwYDVQQKDBBCSUdEQVRBLlpYWEsuQ09NMSIwIAYDVQQDDBl1dGlsaXR5MS5iaWdkYXRhLnp4eGsuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx+9cmjs3CD/wL8dJqk7xji1jOtGIpdTagReVkyuHx639AjZzDyatwihPGLnVCg/4lmKeZ3lwrmiQnfLk5e2i4yIwKrpgKdrA6tp/b9cAtAm1Aq3VYpWMbih2wIgVbuVKWP/I8TSwqNfQ9ZLj1PPuApNYmoNcwDxGSBXLXcaUsiVHY1Q+x68kBxB/WFTbeBjPgremgSAojdNiLVIqWXQQXaytBX1RG9npU7COJtlnHnbwwzimKsHnCzdNza6jnzts776P4M6s7yrvhewXDJGmMIAj0PgXCvfdMudx+OVjJFkIzSBIw/7Sl5Fmkps5u6pclwXN+PVc5iUYOpj8pYJBnwIDAQABo4IB7jCCAeowHwYDVR0jBBgwFoAUNJYYJQKe+0MhNjglFCqa4pvuDLMwQgYIKwYBBQUHAQEENjA0MDIGCCsGAQUFBzABhiZodHRwOi8vaXBhLWNhLmJpZ2RhdGEuenh4ay5jb20vY2Evb2NzcDAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMHsGA1UdHwR0MHIwcKA4oDaGNGh0dHA6Ly9pcGEtY2EuYmlnZGF0YS56eHhrLmNvbS9pcGEvY3JsL01hc3RlckNSTC5iaW6iNKQyMDAxDjAMBgNVBAoMBWlwYWNhMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHQYDVR0OBBYEFBrWhdEchPrA8DUCRLxhMZIxcf0HMIG3BgNVHREEga8wgayCGXV0aWxpdHkxLmJpZ2RhdGEuenh4ay5jb22gPwYKKwYBBAGCNxQCA6AxDC9IVFRQL3V0aWxpdHkxLmJpZ2RhdGEuenh4ay5jb21AQklHREFUQS5aWFhLLkNPTaBOBgYrBgEFAgKgRDBCoBIbEEJJR0RBVEEuWlhYSy5DT02hLDAqoAMCAQGhIzAhGwRIVFRQGxl1dGlsaXR5MS5iaWdkYXRhLnp4eGsuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCR+Kr0WjbiS5FyagxDPCRS1fGlzXzeQraXw2mI6lxX2RHy1dBiAjqRR3jOzJArKanUBSlTDyJymoQhd3Kc9cZ6k4eAoEZIXONzo6e3dT6yc0mplK/9AvNFUBlLAajfJmK50ay7OoTsLY3jWaP2aadZzQTLyNsxV9DHcLHMETI3jJ8D3P61cB78tc9X781JWFvPB8NYvHqI1XvpcYfmMUdWleSkd/FWjHqq/ymVGG7Sgy4eCrhZ2b903Froa0fiMXWEVa1rUQ8G4fFBx67InVN1v9Z675lI95aZCIpL2k9onYDpmTme+YiybL+11JE3KDynjlMydS13JEjWNEMs4wRI
Managed by: utility1.bigdata.zxxk.com
不允许检索keytab:
member user: [email protected]: no such entry
member group:
member host:
member host group:
---------
已添加的成员数 0
---------
可以看到核心提示:
[email protected]: no such entry
[email protected]
是用户cmadmin-5d5055fa
的带域名形式,尝试去掉域名,执行成功,命令如下:
ipa service-allow-retrieve-keytab HTTP/utility1.bigdata.zxxk.com@REALM --users=cmadmin-5d5055fa
文章浏览阅读903次。点击关注公众号,利用碎片时间学习缘起最近在公司基于bigQuery开发埋点数据分析功能,所以总结一下自己封装的bigQuery查询工具类(网上关于bigQuery的文章比较少)关于bigQ..._java bigquery
文章浏览阅读243次。我发现我得到了Error (E_UNKNOWN) :: Encountered an unexpected error: ER_BAD_FIELD_ERROR: Unknown column ‘NaN’ in ‘field list’我第一次注意到这是在分期(弹性豆茎).当我做一个新的npm安装时,在本地注意到这一点.我该如何调试错误?看起来Survey.create(params)是原因.但我无..._[error (e_unknown) encountered an unexpected error] details: error: er_bad_
文章浏览阅读584次。clearclc% 拟合figureN = 20;x = linspace(-2,2,N);x = x';r = 0.25*randn(N,1);y = x.^4+r; % 原方程subplot(1,3,1);f1 = fit(x,y,'poly1'); % 线性plot(f1,x,y,'o');legend(subplot(1,3,1),'off');subplot(1,3,2);f2 = fit(x,y,'poly2'); % 二次plot(f2,x,y,'o')._二次函数拟合
文章浏览阅读849次,点赞2次,收藏3次。bitsCN.com首先推荐一本初学者的书,一个小册子:《mysql必知必会》简介实用,权威;有点贵,昨天才买的。http:///ebook/201112/30389.html正文:mysql修改表名,列名,列类型,添加表列,删除表列修改表名(设表明为testtable,将其命名为newtablename)alter table testtable rename newtablename;添加表...
文章浏览阅读180次。在上一篇博客中,我们实现了单进程版本的简单TCP网络程序。这种程序一次只能连接一个客户端,具有局限性。所以现在我们来实现多进程版本的简单TCP网络程序,通过创建子进程的方式来支持多连接。server.c:#include <stdio.h>#include<sys/socket.h>#include<netinet/in.h>#include<uni...
文章浏览阅读243次。有许多的组件可以帮助我们完成这个任务;常用的组件有:C#:1、DuoDimensionJAVA: 1、iTextiText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。2、...
文章浏览阅读134次。link多开一维表示层数(免费坐了几次)#include&lt;cstdio&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;#include&lt;iomanip&gt;#include&lt;c
文章浏览阅读474次。标签:java 多线程 同步 数据传递 林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程
文章浏览阅读1.6k次。林政 windows phone8开发教程大纲windows phone8开发教程详情》》第一阶段:Windows Phone 8开发概述和语言基础 Windows Phone 8 平台概览C#语法的重点和难点特性Windows Phone 8 的开发基础要点第二阶段:深入解析UI的编程技术 深入解析程序界面深入解析动画编程深入解析控件编程_windows phone 8 开发教程
文章浏览阅读4.9k次。str=str.replace(new RegExp(/(:)/g),"_");_js replace 冒号
文章浏览阅读4.3w次,点赞25次,收藏77次。在上一篇文章,《Qt on Android:QML 语言基础》中,我们介绍了 QML 语言的语法,在最后我们遗留了一些问题没有展开,这篇呢,我们就正式开始撰写 Qt Quick 程序,而那些问题,随着本系列文章的展开也会一一被干掉。
文章浏览阅读1.2k次。一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂_简述线程状态转换图