最近因为项目需要,需要对用户权限做限制,最终选择了kerberos+sentry+hue模式来管理用户,但是这个kerberos实在搞得我头大的不行,在网上找各种资料,怎么配置都不行,后来索性静下心来研究官方文档,在经历3天的痛苦折腾之后,终于实现了成功启动kerberos,为了各位能少走弯路我把我的经验写出来,供有缘人借鉴并少走弯路。
其实自己走了一遍后,真的是很简单,只是我自己当初想的太复杂,没有搞清楚cdh的原理,cdh自己都配置好的,我自己只需保证整个集群KDC组是通的即可,其他都不需要自己手动操作,现在终于明白了网上那些博客都是自己手动安装kerberos才需要大量的配置密钥和创建规则,言归正传。
我的环境很简单10个节点,我的配置是1个节点做cdh的server+CDH的server是单独存放监听的东西,上面hadoop的什么服务都不放,2个节点做namenode 其余7个节点是namenode
配置kdc集群的先解决条件
server 主机配置如下
1.主配hosts置文件如下(所有机器)
cat /etc/hosts
192.168.237.230 masternode01
192.168.237.231 masternode02
192.168.237.232 slavenode02
192.168.237.233 slavenode03
192.168.237.234 slavenode04
192.168.237.235 slavenode05
192.168.237.236 slavenode06
192.168.237.237 slavenode07
192.168.237.238 slavenode08
192.168.237.239 slavenode09
2.server 安装kerberos相关软件
install the kerberos components
yum install -y krb5-server openldap-clients krb5-workstation
[root@masternode01 jce]#yum install -y krb5-server openldap-clients krb5-workstation
3.修改/etc/krb5.conf配置文件
[root@masternode01 jce]#sed -i.orig 's/HADOOP.COM/HADOOP.COM/g' /etc/krb5.conf
[root@masternode01 jce]#sed -i.m1 's/kerberos.example.com/masternode01/g' /etc/krb5.conf
[root@masternode01 jce]#sed -i.m2 's/example.com/hadoop.com/g' /etc/krb5.conf
sed -i.m3 '/supported_enctypes/a default_principal_flags = +renewable, +forwardable' /var/kerberos/krb5kdc/kdc.conf
sed -i.m4 's/^default_principal_flags/ default_principal_flags/' /var/kerberos/krb5kdc/kdc.conf
[root@masternode01 ~]# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88</