如何通过Cloudera Manager为Kafka启用Kerberos及使用

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


在CDH集群中启用了Kerberos认证,那么我们的Kafka集群能否与Kerberos认证服务集成呢?本篇文章主要讲述如何通过Cloudera Manager为Kafka集群启用Kerberos认证及客户端配置使用。

  • 内容概述

1.修改Kafka配置

2.配置客户端

3.客户端测试Producer和Consumer

  • 测试环境

1.RedHat7.2

2.CM和CDH版本为5.11.2

3.采用sudo权限的ec2-user用户

4.Kafka2.2.0

  • 前置条件

1.Kafka2.0.x或更高版本

2.Cloudera Manager5.5.3或更高版本

3.Kafka集群安装且正常运行

4.集群已启用Kerberos认证

5.Kafka未与Sentry集成

2.修改Kafka配置


1.登录Cloudera Manager进入Kafka服务,修改ssl.client.auth配置为none

2.Kafka启用Kerberos

3.修改security.inter.broker.protocol配置为SASL_PLAINTEXT

4.保存以上修改的配置后,回到主页根据提示重启Kafka Server

完成以上配置就可以为Kafka集群启用Kerberos认证。

3.配置客户端


1.创建jaas.conf文件

如果你先使用kinit初始化Kerberos账号,则jaas.conf配置文件内容如下:

KafkaClient{

com.sun.security.auth.module.Krb5LoginModule required

useTicketCache=true;

};

如果使用keytab文件初始化Kerberos账号,则jaas-keytab.conf配置文件内容如下:

root@ip-172-31-21-45ec2-user# vim jaas-keytab.conf

KafkaClient{

com.sun.security.auth.module.Krb5LoginModule required

useKeyTab=true

keyTab="/home/ec2-user/fayson.keytab"

principal="fayson@CLOUDERA.COM";

};

2.创建client.properties文件,内容如下

root@ip-172-31-21-45ec2-user# vim client.properties

security.protocol=SASL_PLAINTEXT

sasl.kerberos.service.name=kafka

4.客户端测试Producer和Consumer


1.设置KAFKA_OPTS环境变量

root@ip-172-31-21-45ec2-user# export KAFKA_OPTS="-Djava.security.auth.login.config=/home/ec2-user/jaas.conf"

或者

root@ip-172-31-21-45ec2-user# export KAFKA_OPTS="-Djava.security.auth.login.config=/home/ec2-user/jaas-keytab.conf"

如果使用jaas.conf文件设置环境变量则需要先使用kinit初始化Kerberos账号。

2.运行Kafka的Producer

root@ip-172-31-21-45ec2-user# kafka-console-producer--broker-list 172.31.21.45:9092 --topic test3 --producer.config client.properties

...

hello

world

3.运行Kafka的Consumer

root@ip-172-31-26-80ec2-user# export KAFKA_OPTS="-Djava.security.auth.login.config=/home/ec2-user/jaas.conf"

root@ip-172-31-26-80ec2-user# kafka-console-consumer--topic test3 --from-beginning --bootstrap-server 172.31.26.102:9092,172.31.21.45:9092,172.31.26.80:9092 --consumer.config client.properties

...

hello

world

5.总结


Kafka与CDH集群中的其它组件集成Kerberos稍有不同,需要做一些额外的配置。本篇文章主要讲述了如何启用Kerberos身份认证及客户配置使用,那么在代码开发中如何向已启用Kerberos认证的Kafka集群中生产和消费数据,Fayson在接下来的文章会做详细讲述。

参考文档:

https://www.cloudera.com/documentation/kafka/latest/topics/kafka_security.html#concept_lcn_4mm_s5

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花! 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2017-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何在CDH集群中安装Hive2.3.3

63830
来自专栏个人分享

Spark on yarn配置项说明与优化整理

1. #spark.yarn.applicationMaster.waitTries  5    

22020
来自专栏Hadoop实操

在同时使用Hive+Sentry,因HMS死锁导致的高并发写入工作负载时,查询速度缓慢或者停滞

18450
来自专栏Hadoop实操

如何在CDH集群上部署Python3运行环境及运行Python作业

当前有很多工具辅助大数据分析,但最受欢迎的就是Python。Python简单易用,语言有着直观的语法并且提供强大的科学计算和集群学习库。借着最近人工智能,深度学...

90840
来自专栏我是攻城师

Hive使用ORC格式存储离线表

538100
来自专栏Hadoop实操

如何使用Nginx实现Impala负载均衡

在使用Impala JDBC连接Impala服务时,默认是不带负载均衡的,但一个Impala Daemon很可能会产生单点的问题,这里我们就需要考虑Impala...

57780
来自专栏Hadoop实操

如何编译适用于CDH的Tez版本并集成Kerberos环境的Hive2

在上一篇文章Fayson介绍了《非Kerberos环境下Hive2.2.0 On Tez集成》,使用Apache官网默认编译好的0.8.5版本的Tez,默认的版...

59620
来自专栏Hadoop实操

如何在CDH集群外配置Kerberos环境的Spark2和Kafka客户端环境

28330
来自专栏云计算教程系列

如何在Debian 9上以独立模式安装Hadoop

Hadoop是一个基于Java的编程框架,支持在廉价机器集群上处理和存储极大数据集。它是大数据竞争领域的第一个主要开源项目,由Apache Software F...

24510
来自专栏Hadoop实操

如何为Spark应用启用Kerberos的Debug日志

在CDH集群启用了Kerberos后,在执行Spark作业时难免会遇到由于Kerberos认证问题导致作业运行失败的时候,那我们需要针对Spark作业进行调试,...

45230

扫码关注云+社区

领取腾讯云代金券