 内容概述

  1. 安装配置KDC
  2. 安装kerberos客户端
  3. 启用Kerberos
  4. Kerberos使用
     操作环境
  5. 操作系统:Red Hat Enterprise Linux Server release 7.4
  6. 集群环境:CDH5.16.2
  7. 操作用户: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 修改配置文件

  1. 修改/etc/krb5.conf文件
    编辑文件/etc/krb5.conf,修改标红部分,分别设置default_realm、realms和domain_realm
  2. 修改/var/kerberos/krb5kdc/kadm5.acl文件
    编辑文件/var/kerberos/krb5kdc/kadm5.acl,修改成自己的域名
  3. 修改/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

  1. 创建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”

  1. 在CM节点上安装openldap-clients
    yum -y install openldap-clients
  2. 拷贝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

  1. 在cloudera manager主页选择【管理】 -> 【安全】
  2. 选择【启用Kerberos】

勾选所有选项

  1. 配置KDC相关信息
    包括类型、KDC服务器、KDC Realm、加密类型以及待创建的Service Principal(hdfs,yarn,,hbase,hive等)的更新生命期等
  2. 不建议让Cloudera Manager来管理krb5.conf文件。【继续】
  3. CM的kerberos用户
    输入Cloudera Manager的Kerbers管理员账号,一定得和之前创建的账号一致。【继续】

点击【继续】启用Kerberos

Kerberos启用完成,继续

  1. 重启集群
    勾选重启集群,继续

集群重启完成

4 Kerberos使用
4.1 创建kerberos测试用户

  1. 创建自定义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;

验证完成