
BUG写在前面:Kerberos 1.15.1-18.el7.x86_64 版本有BUG,不要安装这个版本!!!!
如果已安装上面描述版本不要怕,这里有一篇解决方案升级kerberos
1. *** 作系统:CentOS Linux release 7.5.1804 (Core)
2. CDH: 5.16.2-1.cdh5.16.2.p0.8
3. Kerberos:1.15.1-50.el7x86
4.采用root用户进行 *** 作
在Cloudera Manager服务器上安装KDC服务
在CMWEIUI界面(http://cmip:7180/cmf/hardware/roles#clusterId=1)查看cm安装地址.例如下图中安装在namenode02
在namenode02 上面执行下面命令
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
安装完之后,会在KDC 主机上生成配置文件
• /etc/krb5.conf
• /var/kerberos/krb5kdc/kdc.conf
/etc/krb5.conf2.1.1.2. 修改内容
修改内容如下,标注黄色的为修改的内容,其他配置可根据实际情况调整
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = false
# ticket_lifetime = 24h
ticket_lifetime = 60d
# renew_lifetime = 7d
renew_lifetime = 180d
forwardable = true
rdns = false
default_realm = HADOOP.COM
#default_ccache_name = KEYRING:persistent:%{uid}
[realms]
HADOOP.COM = {
kdc = namenode02
admin_server = namenode02
}
[domain_realm]
# .hadoop.com = HADOOP.COM
# hadoop.com = HADOOP.COM
2.1.1.3. 解释说明
default_realm = HADOOP.COM #指定默认的域名
HADOOP.COM = {
kdc = namenode02 #kdc 服务器地址
admin_server = namenode02 #admin 服务(域控制器)地址
}
2.1.2. 修改kadm5.acl 文件
2.1.2.1. 修改文件地址
/var/kerberos/krb5kdc/kadm5.acl2.1.2.2. 修改内容
*/admin@HADOOP.COM *2.1.2.3. 解释说明
给数据库管理员添加ACL 权限,修改kadm5.acl 文件,*代表全部权限 #当前用户admin ,* 表示全部权限。可以新增用户和分配权限 #配置表示以/admin@HADOOP.COM 结尾的用户拥有*(all 也就是所有)权限2.1.3. 修改kdc.conf 文件 2.1.3.1. 修改文件地址
/var/kerberos/krb5kdc/kdc.conf2.1.3.2. 修改内容
修改内容如下,标注黄色的为修改的内容,其他配置可根据实际情况调整
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
HADOOP.COM = {
#master_key_type = aes256-cts
max_life = 30d
max_renewable_life = 180d 0h 0m 0s
#max_renewable_life = 7d 0h 0m 0s
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
3.创建Kerberos数据库
kdb5_util create –r HADOOP.COM -s
此处需要输入Kerberos数据库的密码。
--- Loading random data Initializing database '/var/kerberos/krb5kdc/principal' for realm 'HADOOP.COM', master key name 'K/M@HADOOP.COM' You will be prompted for the database Master Password. [输入密码: HADOOP.COM] It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: ---
创建好数据库后。可以在目录/var/kerberos/krb5kdc 看到以下文件:
若重建数据库则需先删除/var/kerberos/krb5kdc 下面principal 相关文件
说明:
• [-s] 表示生成stash file,并在其中存储master server key(krb5kdc)
• [-r] 来指定一个realm name,当krb5.conf 中定义了多个realm 时使用
• 当Kerberos database 创建好了之后,在/var/kerberos/中可以看到生成的principal
相关文件
• 如果遇到数据库已经存在的提示,可以把/var/kerberos/krb5kdc/ 目录下的
principal 的相关文件都删除掉。默认的数据库名字都是principal。可以使用-d 指
定数据库名字。
注意kadmin.local 可以直接运行在KDC 上,而无需通过Kerberos 认证
命令
kadmin.local addprinc admin/admin@HADOOP.COM
执行
---- [root@namenode02 ~]# kadmin.local Authenticating as principal root/admin@HADOOP.COM with password. kadmin.local: addprinc admin/admin@HADOOP.COM WARNING: no policy specified for admin/admin@HADOOP.COM; defaulting to no policy Enter password for principal "admin/admin@HADOOP.COM": 【输入密码为admin】 Re-enter password for principal "admin/admin@HADOOP.COM": Principal "admin/admin@HADOOP.COM" created. kadmin.local: exit ----5.启动kerberos
将Kerberos 服务添加到自启动服务,并启动krb5kdc 和kadmin 服务。
命令
systemctl enable krb5kdc systemctl enable kadmin systemctl start krb5kdc systemctl start kadmin6.验证Kerberos的管理员账号
命令
kinit admin/admin@HADOOP.COM klist
执行
---
[root@namenode02 ~]# kinit admin/admin@HADOOP.COM
Password for admin/admin@HADOOP.COM: [输入密码:admin]
[root@namenode02 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@HADOOP.COM
Valid starting Expires Service principal
12/03/2021 10:51:53 01/02/2022 10:51:53 krbtgt/HADOOP.COM@HADOOP.COM
renew until 06/01/2022 10:51:53
---
7.安装Kerberos客户端(所有节点)
为集群安装所有Kerberos客户端,包括Cloudera Manager
以namenode01为例:
yum -y install krb5-libs krb5-workstation8.在Cloudera Manager Server服务器上安装额外的包
yum -y install openldap-clients9.拷贝配置文件
将KDC Server上的krb5.conf文件拷贝到所有Kerberos客户端
以namenode01为例:
scp /etc/krb5.conf root@namenode01:/etc10.配置JCE
对于使用Centos5.6 及以上的系统,默认采用AES-256 来加密。这就需要CDH
集群所有的节点都安装Java Cryptography Extension (JCE) Unlimited
Strength Jurisdiction Policy File
下载路径:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-21331
66.html
下载后,在各节点执行,将US_export_policy.jar放到jre下面.
unzip jce_policy-8.zip cp US_export_policy.jar /usr/java/jdk1.8.0_231/jre/lib/security/US_export_policy.jar11.添加cm管理员账号
在KDC中给Cloudera Manager添加管理员账号
查看cmd的用户名,如下图所示的,用户名为: cloudera-scm
给Cloudera Manager添加管理员账号
命令
kadmin.local addprinc cloudera-scm/admin@HADOOP.COM list_principals
执行
---- Authenticating as principal admin/admin@HADOOP.COM with password. kadmin.local: addprinc cloudera-scm/admin@HADOOP.COM WARNING: no policy specified for cloudera-scm/admin@HADOOP.COM; defaulting to no policy Enter password for principal "cloudera-scm/admin@HADOOP.COM": [输入密码为cloudera-scm] Re-enter password for principal "cloudera-scm/admin@HADOOP.COM": Principal "cloudera-scm/admin@HADOOP.COM" created. kadmin.local: list_principals K/M@HADOOP.COM admin/admin@HADOOP.COM cloudera-scm/admin@HADOOP.COM kadmin/admin@HADOOP.COM kadmin/changepw@HADOOP.COM kadmin/namenode02@HADOOP.COM kiprop/namenode02@HADOOP.COM krbtgt/HADOOP.COM@HADOOP.COM kadmin.local: exit ----12.配置Kerberos并访问Hadoop相关服务 12.1进入CDH管理安全界面
登录cm的WEBUI界面,选择[管理]–>[安全].进入开启kerberos界面
点击[启动kerberos]按钮,进去开启流程,全部打钩,然后点击[继续].
填写安全域,以及KDC server以及KDC admin server的主机名, 然后点击[继续].
如果勾选了这个选项就可以通过CM 的管理界面来部署krb5.conf,但是实际 ***
作过程中发现有些配置仍然需要手动修改该文件并同步。所以不建议让
Cloudera Manager 来管理krb5.conf, 点击“继续”
输入Cloudera Manager 的Kerbers 管理员账号,一定得和之前创建的账号一致
cloudera-scm/admin@HADOOP.COM
默认即可,点击继续
勾选重启集群,然后点击继续
等待重启,出现下图所示,点击继续
点击完成
kadmin.local listprincs ktadd -k /home/kerberos/hdfs.keytab -norandkey hdfs/namenode02@HADOOP.COM13.2 常见问题 问题1
kadmin: GSS-API (or Kerberos) error while initializing kadmin interface
检查NTP 服务是否正常启动,执行ntpq -p 检查偏移量是否正常。如果偏移量
太大,通过date -s "2021-11-03 09:49:00"命令,校正各个主机时间。
HUE认证问题
解决方案执行下面命令
klist -f -c /var/run/hue/hue_krb5_ccache kadmin.local modprinc -maxrenewlife 90day krbtgt/HADOOP.COM@HADOOP.COM list_principals modprinc -maxrenewlife 90day +allow_renewable hue/namenode01@HADOOP.COM modprinc -maxrenewlife 90day +allow_renewable hue/namenode02@HADOOP.COM问题3
Caused by: ExitCodeException exitCode=24:
File /var/lib/yarn-ce/etc/hadoop must not be world or group writable, but is 777
chmod -R 751 /var/lib问题4
Can’t create directory /data1/yarn/nm/usercache/hive/appcache/application_1639382956195_0009 - Permission denied
解决方案到报错主机下面执行下面脚本
chown yarn:yarn /data1/yarn/nm/usercache/hive13.3.常用命令
#进入kdc kadmin.local #创建kdc数据库 kdb5_util create –r HADOOP.COM –s --创建princ addprinc cloudera-scm/admin@HADOOP.COM --删除princ delprinc cloudera-scm/admin@HADOOP.COM --修改密码 change_password admin/admin@HADOOP.COM --查看生命周期 getprinc zookeeper/datanode05 --查看princ listprincs --删除数据库 rm -rf /var/kerberos/krb5kdc/principal* --生成keytab文件 ktadd -k /home/kerberos/hdfs.keytab -norandkey hdfs/namenode02@HADOOP.COM14.kerberos系列
CDH5安装Kerberos认证
升级kerberos
windows下火狐浏览器中配置kerberos客户端
CDH禁用kerberos
卸载kerberos
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)