一、 背景介绍
大数据平台生产环境开启了Kerberos认证,测试环境没有开启Kerberos认证,导致在开发离线变量计算平台的时候没法在测试环境调试Kerberos认证相关的内容,只能在生产环境上去调试,导致离线变量平台1.0.1.1、1.0.2版本上线的时候由于调试Kerberos的原因上线搞了很久。
在生产环境上调试代码是非常不合理的,所以决定把测试环境Kerberos认证搭建起来,由于目前测试环境都在用着,目前大家对Kerberos认证服务都不太熟悉,怕直接在测试环境上装Kerberos把测试环境集群搞挂了,所以先在本地开发机器开个虚拟机,安装CentOS,在本地虚拟机里面实验一下。
二、 实验环境
- 操作系统:CentOS-6.5-x86_64-minimal
- 虚拟机:VMware-workstation-full_12.5.5.17738
三、 安装步骤
a)配置hosts&hostname
输入命令:hostname查看当前主机名
配置hostname
编辑network文件修改HOSTNAME配置项为master.msxf.hadoop,重启服务器,hostname修改生效。
配置hosts
编辑hosts文件,添加一行“192.168.86.129 master.msxf.hadoop”使通过主机名可以直接访问到对应的服务器。
重启服务器
输入命令reboot重启服务器,使配置生效。
验证配置是否生效
b) 安装kerberos
安装Kerberos认证KDC服务端
yum install krb5-libs krb5-server krb5-workstation
遇到是/否一律选择是
等待安装完成,开始进行配置,首先配置/etc/krb5.conf文件,其中特别要配置的为default_realm,这里为自定义的一个领域(可以理解为域名),注意一定要大写如MSXF.HADOOP,下面花括号外面值和default-realm一样。话括号里为配置kdc和admin的主机名,这里配置为同一台主机即当前主机名,如果kdc有多台的话,也可以配置多个kdc=xxx
配置/var/kerberos/krb5kdc/kdc.conf和/var/kerberos/krb5kdc/kadm5.acl文件,其中kadm5.acl表示kadmin管理帐号为*/admin@YOUR_EALM的,即所有带/admin都为可以是管理帐号。
配置kdc.conf
/var/kerberos/krb5kdc/kdc.conf
配置kadm5.acl
/var/kerberos/krb5kdc/kadm5.acl
创建kerberos数据库
首先创建前看到/var/kerberos/krb5kdc/仅用两个文件
创建数据库,使用命令kdb5_util create -r your_realm -s,注意,在Loading random data这里的时候可能会要比较久的时间。这里会要求输入数据库秘密,这个秘密非常重要一定要记好。
kdb5_util create -r MSXF.HADOOP -s
创建完毕后,在查看/var/kerberos/krb5kdc/下面发现已经多了几个principal相关的文件,其实这些就是kerberos的数据文件。而如果把这个文件删除就相当于把数据库删除需要重建,可以把这些文件mv走然后kadmin.local试试,应该是会报错的,然后再把这些文件mv回来,又可以了。
创建管理员并输入密码(帐号admin/admin(一定要带xxx/admin)密码一定要记住)。
/usr/sbin/kadmin.local -q "addprinc admin/admin"
设置kadmin和krb5kdc服务开机启动(一个kdc的服务一个kadmin管理服务)
chkconfig krb5kdc on
chkconfig kadmin on
/etc/init.d/krb5kdc start
/etc/init.d/kadmin start
验证通过admin登录
登录的时候需要输入创建admin账号的时候设置的秘密。
kinit admin/admin
添加一个test帐号并且查看是否进入数据库(通过kadmin.local 然后listprincs查看)
kadmin.local
addprinc test/master
addprinc hdfs/master.msxf.hadoop
listprincs
以上已经安装成功,接下来将在cdh hadoop集群上开启kerberos管理。