EMR大数据平台开启kerberos方法
1 本地源配置
服务器本地源没有配置,导致不能连接外网,参考其他可以连接外网的服务器,配置本地源。配置方法:
1.1打开CentOS.repo文件并修改
Vi /etc/yum.repos.d/CentOS.repo
1.2增加yum配置
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://10.20.32.14/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://10.20.32.14/centos/RPM-GPG-KEY-CentOS-7
priority=1
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://10.20.32.14/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://10.20.32.14/centos/RPM-GPG-KEY-CentOS-7
priority=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://10.20.32.14/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://10.20.32.14/centos/RPM-GPG-KEY-CentOS-7
priority=1
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://10.20.32.14/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://10.20.32.14/centos/RPM-GPG-KEY-CentOS-7
priority=2
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://10.20.32.14/centos/7/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://10.20.32.14/centos/RPM-GPG-KEY-CentOS-7
priority=2
1.3 yum安装kdc时报错
当使用yum安装KDC时报错
执行yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation时报错
Error: Package krb5-server.x86_64 (krb5-server-updates)
解决办法:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum repolist
3 KDC 服务安装及配置
[root@cdp1 ~]# yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-
Workstation
图3-1 kerberos安装
安装完之后,会在 KDC 主机上生成配置文件
l /etc/krb5.conf
l /var/kerberos/krb5kdc/kdc.conf
3.1 修改配置文件
主要修改标记位置,其他配置根据实际情况修改
3.1.1修改 krb5.conf 文件
[root@cdp1 ~]# vi /etc/krb5.conf
标红为修改部分
default_realm = TEST.COM #指定默认的域名
TEST.COM = {
kdc = cdp1 #kdc 服务器地址
admin_server = cdp1 #admin 服务(域控制器)地址
}
3.1.2 修改 kadm5.acl 文件
给数据库管理员添加 ACL 权限,修改 kadm5.acl 文件,*代表全部权限
[root@cdh1 ~]# vi /var/kerberos/krb5kdc/kadm5.acl
#当前用户 admin ,* 表示全部权限。可以新增用户和分配权限
#配置表示以/admin@WXAMPLE.COM 结尾的用户拥有*(all 也就是所有)权限
*/admin@TEST.COM *
3.1.3 修改 kdc.conf 文件
[root@cdp1 ~]# vi /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
TEST.COM = {
#master_key_type = aes256-cts
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-hmacsha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-
cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
3.1.4 创建 Kerberos 数据库
[root@cdp1 ~]# kdb5_util create -r TEST.COM –s
创建好数据库后。可以在目录 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
指定数据库名字。
3.1.5 添加数据库管理员
注意 kadmin.local 可以直接运行在 KDC 上,而无需通过 Kerberos 认证
[root@cdp1 ~]# kadmin.local
kadmin.local: addprinc admin/admin@TEST.COM
按提示设定密码。
3.1.6启动 Kerberos
将 Kerberos 服务添加到自启动服务,并启动 krb5kdc 和 kadmin 服务
##Centos7 的指令
[root@cdp1 ~]# systemctl enable krb5kdc
[root@cdp1 ~]# systemctl enable kadmin
[root@cdp1 ~]# systemctl start krb5kdc
[root@cdp1 ~]# systemctl start kadmin
3.1.7 对管理员账号进行验证
[root@cdp1 ~]# kinit admin/admin@TEST.COM
[root@cdp1 ~]# klist
3.2 安装 Kerberos 客户端(所有节点执行)
3.2.1 为集群安装 Kerberos 客户端
[root@cdp1 ~]# yum -y install krb5-libs krb5-workstation
[root@cdp2 ~]# yum -y install krb5-libs krb5-workstation
[root@cdp3 ~]# yum -y install krb5-libs krb5-workstation
3.2.2 在 Cloudera Manager Server 服务器上安装额外的包
[root@cdp1 ~]# yum -y install openldap-clients
将 KDC Server 上的 krb5.conf 文件拷贝到所有 Kerberos 客户端(拷贝到所有
节点)
[root@cdp1 ~]# scp /etc/krb5.conf root@10.20.24.236:/etc/
[root@cdp1 ~]# scp /etc/krb5.conf root@10.20.24.238:/etc/
3.2.3 配置 JCE
对于使用 Centos5.6 及以上的系统,默认采用 AES-256 来加密。这就需要 CDP
集群所有的节点都安装 Java Cryptography Extension (JCE) Unlimited
Strength Jurisdiction Policy File
下载路径: http://www.oracle.com/technetwork/java/javase/downloads/jce8-
download-2133166.html
jce_policy-8.zip
下载后,在各节点执行
cp UnlimitedJCEPolicyJDK8/*.jar /opt/module/jdk1.8.0_144/jre/lib/security/
验证客户端访问 KDC
kadmin -p 'admin/admin' -w 'admin' -s '10.20.24.162' -q 'list_principals'
说明:
[-p] 来指定用户名和实例
[-w] 来指定该用户名实例对应的密码
[-s] 表示 kdc server 服务器所在 IP
[-q] 表示指令
4 在HDP上启动 Kerberos 步骤
HDP 集群启用 Kerberos(集群需安装 Ranger 服务) 在 KDC 中给 Cloudera Manager 添加管理员账号 [root@cdp1 ~]# kadmin.local Authenticating as principal admin/admin@TEST.COM with password. kadmin.local: addprinc cloudera-scm/admin@TEST.COM 进入 HDP 管理安全界面
4.1启用 Kerberos
4.2 选择 MIT KDC
注意:KDC host和Kadmin host一定要填写hostname,否则kerberos会提示找不到kadmin/manager.bigdata@HADOOP.COM
这个principal。
4.3 KDC配置
4.4 Kerberos Client 安装
1.安装client
2.配置默认参
3.检查默认配置
4.停止服务
5.启用kerberos服务
后面就是全部服务的启动,并且 Kerberos 会为每个组件创建 Principal 和 Keytab ,可以在 KDC 数据库中查看。
5.异常问题处理
5.1 kerberos开启后tez引擎不可用
如果链接hiveserver2后,使用tez引擎时发生异常,需要配置hadoop的代理用户,配置方式如下:
图5.1-1 hadoop的代理用户配置
5.2 yarn日志打不开
yarn的执行日志打不开时,需要增加参数配置
hadoop.http.authentication.simple.anonymous.allowed设置为true
hadoop.http.authentication.type设置为simple