内容概述
- 安装配置KDC
- 安装kerberos客户端
- 启用Kerberos
- Kerberos使用
操作环境 - 操作系统:Red Hat Enterprise Linux Server release 7.4
- 集群环境:CDH5.16.2
- 操作用户:root
1 KDC服务安装及配置
说明:KDC服务可根据自己需要安装在任一服务器上
本次操作选择Cloudera Manager节点安装KDC服务
1.1 安装KDC服务
在CM节点安装kerberos的KDC服务,命令如下:
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
1.2 修改配置文件
- 修改/etc/krb5.conf文件
编辑文件/etc/krb5.conf,修改标红部分,分别设置default_realm、realms和domain_realm - 修改/var/kerberos/krb5kdc/kadm5.acl文件
编辑文件/var/kerberos/krb5kdc/kadm5.acl,修改成自己的域名 - 修改/var/kerberos/krb5kdc/kdc.conf文件
编辑/var/kerberos/krb5kdc/kdc.conf文件,作如下修改
添加内容:
max_renewable_life = 7d 0h 0m 0s
1.3 创建kerberos数据库
执行如下命令创建kerberos数据库,并设置密码,此处设置数据库密码为password。
kdb5_util create -r HADOOP.COM -s
- 创建kerberos的管理账号
执行如下命令创建kerberos管理员账号,并设置密码
kadmin.local
addprinc admin/admin@HADOOP.COM
1.4 启动krb5kdc和kadmin服务
启动krb5kdc和kadmin服务,并加入开机自启
systemctl start krb5kdc
systemctl start kadmin
systemctl enable krb5kdc
systemctl enable kadmin
查看服务状态
systemctl status krb5kdc
systemctl status kadmin
测试使用kerberos管理员账号登录
kinit admin/admin@HADOOP.COM
2 安装kerberos客户端(所有节点)
使用批量脚本:
./batch_cmd.sh node.list “yum -y install krb5-libs krb5-workstation”
- 在CM节点上安装openldap-clients
yum -y install openldap-clients - 拷贝krb5.conf到/etc目录下(所有节点)
使用批处理脚本将KDC 服务节点上的krb5.conf文件拷贝到所有节点的/etc目录下
./batch_scp.sh node.list /etc/krb5.conf /etc/
3 启用kerberos
3.1 在KDC中添加CM管理员账号
创建cloudera-scm/admin账户
kadmin.local
addprinc cloudera-scm/admin@HADOOP.COM
3.2 在集群中启用kerberos
- 在cloudera manager主页选择【管理】 -> 【安全】
- 选择【启用Kerberos】
勾选所有选项
- 配置KDC相关信息
包括类型、KDC服务器、KDC Realm、加密类型以及待创建的Service Principal(hdfs,yarn,,hbase,hive等)的更新生命期等 - 不建议让Cloudera Manager来管理krb5.conf文件。【继续】
- CM的kerberos用户
输入Cloudera Manager的Kerbers管理员账号,一定得和之前创建的账号一致。【继续】
点击【继续】启用Kerberos
Kerberos启用完成,继续
- 重启集群
勾选重启集群,继续
集群重启完成
4 Kerberos使用
4.1 创建kerberos测试用户
- 创建自定义principal
创建测试用户macro
kadmin.local
addprinc duanduan
在所有节点添加hadoop系统用户(kerberos用户必须在所有节点都存在系统或LDAP同名用户)。yan
验证用户是否创建成功
使用macro用户登录kerberos
4.2 运行mapreduce作业
运行hadoop官方jar包测试
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-0.20-mapreduce/hadoop-examples.jar pi 10 1
权限不足
添加hdfs凭证
利用hdfs创建duanduan目录并加入组,然后执行任务
任务成功执行
4.3 使用beeline连接hive
beeline
!connect jdbc:hive2://localhost:10000/;principal=hive/cdh3.hadoop.com@HADOOP.COM
创建一个test表
create table test(id int, name string);
向test表中插入数据
insert into test values(1, ‘hadoop’);
执行一个count语句
select count(*) from test;
验证完成