CDH6.2.0+Kerberos+Sentry安装过程详细记录
一、准备工作
CDH下载:
下载链接:https://pan.baidu.com/s/1NxdxXim0NyZdEjUVyPfyEQ
提 取 码:v20s
1、本文环境
名称 | CentOS | JDK | MySQL | CM | CDH |
---|---|---|---|---|---|
版本 | 7.9 | 1.8 | 5.7 | 6.2.0 | 6.2.0 |
2、集群规划
IP | 主机名 | 角色 | 安装服务 | 内存 | 处理器 |
---|---|---|---|---|---|
192.168.198.11 | dtb-tc-app11 | Master | cloudera-scm-server cloudera-scm-agent | 6G | 4 |
192.168.198.12 | dtb-tc-app12 | Slave1 | cloudera-scm-agent | 3G | 2 |
192.168.198.13 | dtb-tc-app13 | Slave2 | cloudera-scm-agent | 3G | 2 |
注意:内存和处理器建议分配大一点,由于笔者本地安装,电脑内存和处理器资源有限所以只能分配这么点
3、修改主机映射
3.1、Linux:修改三台服务器的/etc/hosts
文件
[root@dtb-tc-app11 ~]# vim /etc/hosts
3.2、Windows:修改hosts文件,所在目录:C:\Windows\System32\drivers\etc
方便在Windows中直接使用 主机名 访问服务器节点
4、免密登录(方便后面做集群分发)
4.1、生成公钥和私钥
[root@dtb-tc-app11 ~]# ssh-keygen -t rsa
4.2、将公钥拷贝到需要进行免密登录的目标服务器上
[root@dtb-tc-app11 ~]# ssh-copy-id dtb-tc-app11
[root@dtb-tc-app11 ~]# ssh-copy-id dtb-tc-app12
[root@dtb-tc-app11 ~]# ssh-copy-id dtb-tc-app13
4.3、分别在dtb-tc-app12
和dtb-tc-app13
两台服务器上重复4.1和4.2的操作,使所有服务器之间可以免密登录
4.4、验证免密登录
[root@dtb-tc-app11 ~]# ssh dtb-tc-app11
Last login: Wed Jun 9 23:28:04 2021 from 192.168.198.1
[root@dtb-tc-app11 ~]# exit
logout
Connection to dtb-tc-app11 closed.
[root@dtb-tc-app11 ~]# ssh dtb-tc-app12
Last login: Wed Jun 9 23:13:34 2021 from 192.168.198.1
[root@dtb-tc-app12 ~]# exit
logout
Connection to dtb-tc-app12 closed.
[root@dtb-tc-app11 ~]# ssh dtb-tc-app13
Last login: Wed Jun 9 23:13:44 2021 from 192.168.198.1
[root@dtb-tc-app13 ~]# exit
logout
Connection to dtb-tc-app13 closed.
[root@dtb-tc-app11 ~]#
5、编写集群同步脚本
5.1、在/root
目录下创建bin
目录,并在bin
目录下创建 xsync 文件
[root@dtb-tc-app11 ~]# mkdir bin
[root@dtb-tc-app11 ~]# cd bin/
[root@dtb-tc-app11 bin]# vim xsync
5.2、在 xsync 文件中加入如下内容:
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in dtb-tc-app11 dtb-tc-app12 dtb-tc-app13
do
echo ==================== $host ====================
#3. 遍历所有目录,逐个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
5.3、赋予 xsync 可执行权限
[root@dtb-tc-app11 bin]# chmod +x xsync
5.4、将bin
分发至所有节点上,使在任何节点都可以使用xsync脚本进行文件分发
[root@dtb-tc-app11 ~]# xsync /root/bin/
6、关闭防火墙
# 关闭防火墙
[root@dtb-tc-app11 ~]# systemctl stop firewalld
# 查看防火墙状态
[root@dtb-tc-app11 ~]# systemctl status firewalld
# 设置开机不启动防火墙
[root@dtb-tc-app11 ~]# systemctl disable firewalld
7、关闭SELinux
7.1、修改/etc/selinux/config
配置文件,将SELINUX=enforcing修改为SELINUX=disabled
[root@dtb-tc-app11 ~]# vim /etc/selinux/config
7.2、同步/etc/selinux/config
配置文件
[root@dtb-tc-app11 ~]# xsync /etc/selinux/config
7.3、分别重启dtb-tc-app11、dtb-tc-app12、dtb-tc-app13
三台服务器
[root@dtb-tc-app11 ~]# reboot
[root@dtb-tc-app12 ~]# reboot
[root@dtb-tc-app13 ~]# reboot
8、配置 NTP 时钟同步
注意:所有服务器节点均联网的情况下可跳过此步骤
集群时间同步可以参考这篇文章《集群时间同步配置》
二、CM 安装部署
1、安装 JDK(dtb-tc-app11、dtb-tc-app12、dtb-tc-app13
全部安装)
1.1、在/root
目录下创建software
目录,用于存放软件安装包
1.2、使用 ftp 工具将 jdk 的安装包上传至/root/software
目录下
1.3、创建/usr/java
目录,将jdk安装在此目录下
[root@dtb-tc-app11 ~]# mkdir /usr/java
1.4、将jdk-8u291-linux-x64.tar.gz
解压至/usr/java
目录下
[root@dtb-tc-app11 software]# tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/java/
1.5、查看是否解压成功
[root@dtb-tc-app11 software]# ll /usr/java/
1.6、配置JAVA_HOME环境变量
1.6.1、在/etc/profile.d/
目录下创建 java_env.sh
文件,并添加如下内容
[root@dtb-tc-app11 software]# vim /etc/profile.d/java_env.sh
1.6.2、注意JAVA_HOME后面为jdk的安装路径,为了避免手写错误,建议进入jdk安装目录使用pwd
命令查看并复制
# JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_291
export PATH=$PATH:$JAVA_HOME/bin
1.6.3、刷新profile文件使其环境变量生效
[root@dtb-tc-app11 ~]# source /etc/profile
1.6.4、测试 JDK 是否安装成功
[root@dtb-tc-app11 ~]# java -version
1.6.5、将dtb-tc-app11
中的 JDK 和 环境变量 分发至dtb-tc-app12和dtb-tc-app13
上
[root@dtb-tc-app11 ~]# xsync /usr/java/
[root@dtb-tc-app11 ~]# xsync /etc/profile.d/java_env.sh
1.6.6、分别在dtb-tc-app12和dtb-tc-app13
上刷新环境变量,并检测 JDK 是否安装成功
[root@dtb-tc-app12 ~]# source /etc/profile
[root@dtb-tc-app12 ~]# java -version
2、所有节点安装第三方依赖(dtb-tc-app11、dtb-tc-app12、dtb-tc-app13
)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse- libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python fuse-libs fuse
3、安装 MySQL(本文选择安装在dtb-tc-app13
节点上)
3.1、卸载mariadb(CentOS 7自带)
[root@dtb-tc-app13 ~]# rpm -qa | grep mariadb | xargs rpm -e --nodeps
3.2、MySQL安装
MySQL5.7安装参考这篇文章:《通过yum方式安装MySQL5.7》
MySQL8.0安装参考这篇文章:《通过yum方式安装MySQL8.0》
3.3、在/root
目录下创建software
目录,用于存放软件安装包
[root@dtb-tc-app13 ~]# mkdir software
3.4、上传MySQL驱动至/root/software
目录中
3.5、添加 MySQL 驱动
- 在
/usr/share/
目录下创建java
目录
[root@dtb-tc-app13 software]# mkdir /usr/share/java
- 将
mysql-connector-java-5.1.34.jar
拷贝至/usr/share/java
目录下,并重命名为mysql-connector-java.jar
[root@dtb-tc-app13 software]# cp mysql-connector-java-5.1.34.jar /usr/share/java/mysql-connector-java.jar
- 将
mysql-connector-java.jar
驱动包分发至其他节点上
[root@dtb-tc-app13 ~]# xsync /usr/share/java/mysql-connector-java.jar
4、初始化管理节点数据库
4.1、将MySQL驱动包mysql-connector-java-5.1.34.jar
拷贝至/opt/cloudera/cm/lib/
目录
[root@dtb-tc-app13 ~]# cp /root/software/mysql-connector-java-5.1.34.jar /opt/cloudera/cm/lib/
4.2、将MySQL驱动包分发至其他节点
[root@dtb-tc-app13 ~]# xsync /opt/cloudera/cm/lib/mysql-connector-java-5.1.34.jar
4.3、登录MySQL
[root@dtb-tc-app13 ~]# mysql -uroot -p123456
4.4、创建scm
用户及数据库
CREATE USER 'scm'@'%' IDENTIFIED BY 'scm@2021';
GRANT ALL ON *.* TO 'scm'@'%';
CREATE DATABASE scm;
flush privileges;
4.5、创建hive
用户及数据库
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive@2021';
GRANT ALL ON *.* TO 'hive'@'%';
CREATE DATABASE hive;
flush privileges;
4.6、创建reports
数据库
CREATE DATABASE reports;
5、CM安装
5.1、在dtb-tc-app11
上的/root/software
目录下创建cm
目录,用于存放cloudera相关的rpm包
[root@dtb-tc-app11 ~]# mkdir /root/software/cm
5.2、将cloudera相关的rpm包上传至/root/software/cm
目录中
5.2、将agent
和daemons
分发至dtb-tc-app12和dtb-tc-app13
中
[root@dtb-tc-app11 cm]# xsync cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
[root@dtb-tc-app11 cm]# xsync cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
5.3、在主节点dtb-tc-app11
上安装daemons、server和agent
[root@dtb-tc-app11 cm]# rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
[root@dtb-tc-app11 cm]# rpm -ivh cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
[root@dtb-tc-app11 cm]# rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
5.4、分别在从节点dtb-tc-app12和dtb-tc-app13
上安装daemons和agent
[root@dtb-tc-app12 cm]# rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
[root@dtb-tc-app12 cm]# rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
5.5、修改从节点dtb-tc-app12和dtb-tc-app13
的 agent
配置,使其指向server
(dtb-tc-app11)
[root@dtb-tc-app12 ~]# vim /etc/cloudera-scm-agent/config.ini
5.6、初始化scm
数据库(在安装server的节点<dtb-tc-app11>
上操作)
[root@dtb-tc-app11 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h 192.168.198.13 scm scm 'scm@2021';
6、上传 CDH 相关文件(主节点dtb-tc-app11
)
6.1、在/root/software
目录下创建cdh
目录,用于存放CDH相关文件
[root@dtb-tc-app11 ~]# mkdir /root/software/cdh
6.2、上传CDH相关文件至/root/software/cdh
目录下
6.3、将CDH的这些文件移动到/opt/cloudera/parcel-repo/
中
[root@dtb-tc-app11 ~]# mv /root/software/cdh/* /opt/cloudera/parcel-repo/
7、启动 CM
7.1、在dtb-tc-app11
节点上启动server和agent
服务,并设置开机自启
# 启动server
[root@dtb-tc-app11 ~]# systemctl start cloudera-scm-server
# 查看server状态
[root@dtb-tc-app11 ~]# systemctl status cloudera-scm-server
# 设置开机自启
[root@dtb-tc-app11 ~]# systemctl enable cloudera-scm-server
# 启动agent
[root@dtb-tc-app11 ~]# systemctl start cloudera-scm-agent
# 查看agent状态
[root@dtb-tc-app11 ~]# systemctl status cloudera-scm-agent
# 设置开机自启
[root@dtb-tc-app11 ~]# systemctl enable cloudera-scm-agent
7.2、分别在dtb-tc-app12和dtb-tc-app13
节点上启动agent
服务,并设置开机自启
[root@dtb-tc-app12 ~]# systemctl start cloudera-scm-agent
[root@dtb-tc-app12 ~]# systemctl status cloudera-scm-agent
[root@dtb-tc-app12 ~]# systemctl enable cloudera-scm-agent
[root@dtb-tc-app13 ~]# systemctl start cloudera-scm-agent
[root@dtb-tc-app13 ~]# systemctl status cloudera-scm-agent
[root@dtb-tc-app13 ~]# systemctl enable cloudera-scm-agent
7.3、在浏览器输入server节点的主机名/ip
:7180,即可访问到CM的WEB操作界面
三、CDH 安装
1、登录CM,默认用户名和密码都为admin
2、点击继续
,勾选接收许可条款和条件
后点击继续,选择试用版
后点击继续
3、集群安装
注意:若安装的时候,创建hive metastore
数据库表失败,报加载不到驱动,则需要将MySQL驱动包拷贝至/opt/cloudera/parcels/CDH/lib/hive/lib/
目录中。
安装完成
4、配置 Hive 支持 Zookeper 连接
4.1、点击 Hive ,进入Hive后点击配置,在配置里搜索hive-site.xml 的 HiveServer2 高级配置代码段(安全阀)
4.2、在配置中添加如下内容,添加完成后点击保存修改
hive.server2.support.dynamic.service.discovery
true
hive.server2.zookeeper.namespace
hiveserver2
hive.zookeeper.quorum
dtb-tc-app7:2181,dtb-tc-app8:2181,dtb-tc-app9:2181
hive.zookeeper.client.port
2181
4.3、若报如下错误,则需要修改一下 CM 元数据库字符集编码
报错信息:cloudera manager修改配置数值时报错Incorrect string value:'\xE5\x87\xBA\xE7\B0…'for column ‘MESSAGE’ at row1
报错原因:CM元数据库 字符集不兼容 字段 VALUE MESSAGE 无法写入对应的值。
解决办法:修改元数据库
4.4、修改CM元数据库字符集编码
4.4.1、登录数据库
[root@dtb-tc-app13 ~]# mysql -uroot -p123456
4.4.2、选择scm数据库
use scm;
4.4.3、更改字符集编码
alter table CONFIGS modify `VALUE` longtext character set utf8 collate utf8_general_ci;
alter table CONFIGS_AUD modify `VALUE` longtext character set utf8 collate utf8_general_ci;
alter table GLOBAL_SETTINGS modify `VALUE` longtext character set utf8 collate utf8_general_ci;
alter table USER_SETTINGS modify `VALUE` longtext character set utf8 collate utf8_general_ci;
alter table AUDITS modify `MESSAGE` longtext character set utf8 collate utf8_general_ci;
alter table REVISIONS modify `MESSAGE` longtext character set utf8 collate utf8_general_ci;
4.5、修改字符集编码后,再次到WEB管理端保存更改,即可看到配置更改已成功保存
的提示
4.6、修改完配置后重启一下Hive
5、解决hive中文乱码问题
注意:Hive安装完成之后,Hive会出现中文乱码问题
登录MySQL选择 hive 数据库后修改字符集编码即可,SQL语句如下:
use hive;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table DBS modify column `DESC` varchar(4000) character set utf8;
6、CDH的目录结构
[root@dtb-tc-app11 ~]# cd /opt/cloudera/parcels/CDH
-
bin
目录存放的是 CDH 上所安装的组件的脚本文件
-
lib
目录存放的是 CDH 上所安装的组件所依赖的 Jar 包(分好类的)
四、测试MapReduce程序
1、在/
目录下创建data
目录,用来存放测试文件
[root@dtb-tc-app11 ~]# mkdir /data
2、在/data/
目录下创建一个word.txt
文件,并加入如下内容
[root@dtb-tc-app11 ~]# vim /data/word.txt
hello hadoop yarn hdfs hbase hive
hello hadoop yarn hdfs hbase
hello hadoop yarn hdfs
hello hadoop yarn
hello hadoop
hello
3、在 HDFS 上创建/wordcount/input
目录,并上面的word.txt
文件上传至其中
注意:
- 使用CDH安装组件时,会创建对应的用户(例如:安装HDFS会创建hdfs用户、安装Hive会创建hive用户)
- 在启动这些组件时,都是使用
对应的用户
去启动的 - 所以要对这些组件进行操作时,要指定组件对应的用户(例如:sudo -u hdfs hadoop fs -ls /)
# 创建/wordcount/input目录
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -mkdir -p /wordcount/input
# 查看是否创建成功
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -ls -r /wordcount
# 上传文件至HDFS的/wordcount/input目录中
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -put /data/word.txt /wordcount/input
# 查看是否上传成功
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -ls /wordcount/input
4、执行wordcount
程序
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /wordcount/input/ /wordcount/output
5、查看wordcount
程序的执行结果
# 查看生成的文件
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -ls /wordcount/output
# 查看统计的结果
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -cat /wordcount/output/part-r-00000
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -cat /wordcount/output/part-r-00001
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -cat /wordcount/output/part-r-00002
[root@dtb-tc-app11 ~]# sudo -u hdfs hadoop fs -cat /wordcount/output/part-r-00003
五、启用Sentry
1、在MySQL中创建Sentry用户及数据库
CREATE USER 'sentry'@'%' IDENTIFIED BY 'sentry@2021';
GRANT ALL ON *.* TO 'sentry'@'%';
CREATE DATABASE sentry;
flush privileges;
2、在CM上添加Sentry服务
注意:若报找不到MySQL驱动的错误,则需将MySQL的驱动包拷贝到/opt/cloudera/parcels/CDH/lib/sentry/lib/
目录下
3、Sentry与Hive的集成配置
3.1、修改sentry-site.xml
配置文件,添加如下内容
sentry.hive.testing.mode
true
3.2、启用Sentry服务
3.3、关闭Hive的用户模拟功能
搜索Hive Impersonation,然后取消勾选
3.4、重启重新部署客户端配置
六、Kerberos安装
1、server节点(dtb-tc-app11
)安装Kerberos相关软件
# 安装
[root@dtb-tc-app11 ~]# yum install -y krb5-server krb5-workstation krb5-libs
# 查看安装结果
[root@dtb-tc-app11 ~]# rpm -qa | grep krb5
2、client节点(dtb-tc-app12和dtb-tc-app13
)安装Kerberos
# 安装
[root@dtb-tc-app12 ~]# yum install -y krb5-workstation krb5-libs
# 查看安装结果
[root@dtb-tc-app12 ~]# rpm -qa | grep krb5
3、修改配置文件(dtb-tc-app11
)
3.1、kdc 文件配置
[root@dtb-tc-app11 ~]# vim /var/kerberos/krb5kdc/kdc.conf
修改前:
修改后:
3.2、kadm5 配置文件(给admin实例的所有主体授权)
[root@dtb-tc-app11 ~]# vim /var/kerberos/krb5kdc/kadm5.acl
说明:
- 前面的
*
:全部主体 admin
:admin实例DTB.COM
:领域- 后面的
*
:全部权限
3.3、krb5 文件配置
[root@dtb-tc-app11 ~]# vim /etc/krb5.conf
# 分发/etc/krb5.conf配置文件
[root@dtb-tc-app11 ~]# xsync /etc/krb5.conf
4、创建 Kerberos 数据库
# 输入密码、确认密码
[root@dtb-tc-app11 ~]# kdb5_util create -r DTB.COM -s
5、创建管理员账号
[root@dtb-tc-app11 ~]# kadmin.local
kadmin.local: addprinc admin/admin@DTB.COM
kadmin.local: exit
6、启动krb5kdc
和kadmin
服务,并设置开机自启
[root@dtb-tc-app11 ~]# systemctl start krb5kdc
[root@dtb-tc-app11 ~]# systemctl start kadmin
[root@dtb-tc-app11 ~]# systemctl enable krb5kdc
[root@dtb-tc-app11 ~]# systemctl enable kadmin
7、CDH集群启用Kerberos
7.1、添加管理员账号
[root@dtb-tc-app11 ~]# kadmin.local
kadmin.local: addprinc cloudera-scm/admin@DTB.COM
kadmin.local: exit
7.2、CM节点启用Kerberos
等待启用Kerberos
7.3、查看主体
[root@dtb-tc-app11 ~]# kadmin.local -q "list_principals"
8、修改Sentry的配置
8.1、在允许的连接用户中添加admin
8.2、在管理员组中添加admin
8.3、修改sentry-site.xml
的配置文件
搜索 sentry-site.xml 的 Sentry 服务高级配置
,点击以XML格式查看
添加如下内容
<property><name>sentry.service.processor.factories</name><value>org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessorFactory,org.apache.sentry.hdfs.SentryHDFSServiceProcessorFactory</value></property><property><name>sentry.policy.store.plugins</name><value>org.apache.sentry.hdfs.SentryPlugin</value></property><property><name>sentry.hdfs.integeration.path.prefixes</name><value>/user/hive/warehouse</value></property>
9、修改HDFS的配置
9.1、开启安全身份验证
9.2、开启安全授权
9.3、修改Hadoop用户组映射实现
9.4、启用访问控制列表
9.5、启用Sentry同步
10、修改Yarn配置
10.1、检查允许的系统用户是否有hive用户
10.2、修改最小用户ID
10.2、检查是否已启用RM ACL
11、修改Hive配置
11.1、检查是否已启用Sentry服务
11.2、检查HiveServer2模拟是否已经关闭
11.3、检查Hive 仓库子目录继承权限
启用
11.4、设置sentry.hive.testing.mode
为false
12、修改Kafka的配置
12.1、设置Kafka安全身份验证
搜索kerberos.auth.enable
,然后勾选
12.2、设置Kafka认证方式
搜索security.inter.broker.protocol
,然后选择SASL_PLAINTEXT
12.3、配置kafka.properties
搜索kafka.properties 的 Kafka Broker 高级配置代码段(安全阀)
,然后添加如下内容
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:kafka;User:admin;
12.4、配置 Kafka 支持命令行的kinit操作
12.4.1、创建jaas
文件,并添加如下内容
[root@dtb-tc-app11 ~]# vim /etc/kafka/kafka_client_jaas.conf
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
Client {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
# 分发/etc/kafka/kafka_client_jaas.conf文件
[root@dtb-tc-app11 ~]# xsync /etc/kafka/kafka_client_jaas.conf
12.4.2、修改kafka-run-class.sh
文件
[root@dtb-tc-app11 ~]# vim /opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-run-class.sh
在# JVM performance options
配置项的KAFKA_JVM_PERFORMANCE_OPTS
参数中加入如下内容
-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf
# 分发kafka-run-class.sh文件
[root@dtb-tc-app11 ~]# xsync /opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-run-class.sh
12.4.3、创建producer.properties
文件,并添加如下内容
[root@dtb-tc-app11 ~]# vim /etc/kafka/conf/producer.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
# 分发producer.properties文件
[root@dtb-tc-app11 ~]# xsync /etc/kafka/conf/producer.properties
12.4.3、创建consumer.properties
文件,并添加如下内容
[root@dtb-tc-app11 ~]# vim /etc/kafka/conf/consumer.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
# 分发consumer.properties文件
[root@dtb-tc-app11 ~]# xsync /etc/kafka/conf/consumer.properties
12.5、设置 ZooKeeper Root 为/kafka
12.6、取消Sentry服务
修改好配置之后,保存更改并重启Kafka
以上为CDH6.2.0集群搭建,并开启Kerberos与Sentry详细教程!