使用kafka-python客户端进行kafka kerberos认证
之前说过python confluent kafka客户端做kerberos认证的过程,如果使用kafka python客户端的话同样也可以进行kerberos的认证,具体的认证机制这里不再描述,主要叙述配置认证的过程
需要的模块有下面这些:
kafka-python:https://pypi.org/project/kafka-python/
gssapi:https://pypi.org/project/gssapi/
decorator:https://pypi.org/project/decorator/
six:https://pypi.org/project/six/
kerberos环境
kafka python开启GSSAPI需要模块gssapi的支持,而gssapi模块需要依赖于decorator模块和six模块,但是安装时不会校验和提示,如果不安装的话kafka python运行是会提示找不到gssapi lib,真正的原因还是因为decorator或者six没有安装,这里要注意.
首先安装decorator和six这两个模块.
然后安装gssapi模块,安装的时候要确保decorator和six模块正常安装并且kerberos需要的开发包正常安装,否则gssapi会编译失败,安装kerberos库可以使用yum命令如下:
yum install krb5-server krb5-libs krb5-auth-dialog
然后编译并安装gssapi,这里是gssapi-1.6.1.tar.gz,安装如下:
tar -xvzf gssapi-1.6..tar.gz
cd gssapi-1.6.
python3 setup.py build
python3 setup.py install
cd ..
完成之后要退出源码目录,因为导入模块可能会出现冲突,然后进入python解释器,测试一下模块的安装情况:
from gssapi.raw.misc import GSSError
如果导入模块没问题,则说明gssapi安装成功.
最后直接安装kafka-python模块即可.
然后可以开始测试python脚本认证是否正常,注意执行之前要先kinit保证klist有对应的用户,然后再使用下面的代码调试:
#!/usr/bin/env python3
# coding=utf-8
import time from kafka import KafkaProducer
from kafka import KafkaConsumer def kafka_python_producer_main():
producer = KafkaProducer(bootstrap_servers='192.168.0.3:9092,192.168.0.4:9092,192.168.0.5:9092',
security_protocol='SASL_PLAINTEXT',
sasl_mechanism='GSSAPI',
sasl_kerberos_service_name='kafka',
sasl_kerberos_domain_name='hadoop.hadoop.com',
sasl_plain_username='kafkaclient')
producer.send('testTopic', 'kafka python test'.encode('utf-8'))
producer.flush()
producer.close()
print('done') def kafka_python_consumer_main():
consumer = KafkaConsumer('testTopic',
bootstrap_servers='192.168.0.3:9092,192.168.0.4:9092,192.168.0.5:9092',
group_id='kafka-test-20191014',
auto_offset_reset='earliest',
security_protocol='SASL_PLAINTEXT',
sasl_mechanism='GSSAPI',
sasl_kerberos_service_name='kafka',
sasl_kerberos_domain_name='hadoop.hadoop.com',
sasl_plain_username='kafkaclient')
for msg in consumer:
print(msg.value)
print(msg.partition) if __name__ == '__main__':
kafka_python_producer_main()
time.sleep(1)
kafka_python_consumer_main()
然后执行脚本测试,如果生产和消费消息都正常,说明kafka kerberos认证成功.
使用kafka-python客户端进行kafka kerberos认证的更多相关文章
- kafka可视化客户端工具Kafka Tool
1.下载 下载地址:http://www.kafkatool.com/download.html 2.安装 根据不同的系统下载对应的版本,我这里kafka版本是1.1.0,下载kafka tool 2 ...
- Cloudera Hadoop启用Kerberos认证
一.Kerberos 二.安装 node01服务器安装Kerberos的核心服务master KDC,node02和node03安装Kerberos client cm也安装在node01上了 1.m ...
- python confluent kafka客户端配置kerberos认证
kafka的认证方式一般有如下3种: 1. SASL/GSSAPI 从版本0.9.0.0开始支持 2. SASL/PLAIN 从版本0.10.0.0开始支持 3. SASL/SCRAM-SHA- ...
- Java Api Consumer 连接启用Kerberos认证的Kafka
java程序连接到一个需要Kerberos认证的kafka集群上,消费生产者生产的信息,kafka版本是2.10-0.10.0.1: Java程序以maven构建,(怎么构建maven工程,可去问下度 ...
- 我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)
之前使用 Kafka 的客户端消费者比较多一点,而且也是无脑订阅使用也没有深入了解过具体的参数.总的来说使用不够细节. 这次公司项目活动期间暴露非常多的问题,于是有了这篇文章. 首先我们来拆解一下 K ...
- Kafka监控系统Kafka Eagle:支持kerberos认证
在线文档:https://ke.smartloli.org/ 作者博客:https://www.cnblogs.com/smartloli/p/9371904.html 源码地址:https://gi ...
- kafka消费者客户端(0.9.0.1API)
转自:http://orchome.com/203 kafka客户端从kafka集群消费消息(记录).它会透明地处理kafka集群中服务器的故障.它获取集群内数据的分区,也和服务器进行交互,允许消费者 ...
- kafka C客户端librdkafka producer源码分析
from:http://www.cnblogs.com/xhcqwl/p/3905412.html kafka C客户端librdkafka producer源码分析 简介 kafka网站上提供了C语 ...
- kafka Windows客户端Linux服务器---转
原文:http://blog.csdn.net/jingshuigg/article/details/25001979 一.对于服务器端的搭建可以参考上一篇文章:kafka单机版环境搭建与测试 服务器 ...
随机推荐
- 没有用到React,为什么我需要import引入React?
没有用到React,为什么我需要import引入React? 本质上来说JSX是React.createElement(component, props, ...children)方法的语法糖. 所以 ...
- Spark高级函数应用【combineByKey、transform】
一.combineByKey算子简介 功能:实现分组自定义求和及计数. 特点:用于处理(key,value)类型的数据. 实现步骤: 1.对要处理的数据进行初始化,以及一些转化操作 2.检测key是否 ...
- 将浏览器地址栏中的 Request 参数显示成中文
希望实现:在当 JSP 页面发起请求,或者 Servlet 跳转时,地址栏中的参数可以显示成中文. 在通常情况下,浏览器地址栏中的URL地址为了适配不同的浏览器,会将URL地址信息转码为"I ...
- win10 LTSC系统 安装应用商店和纸牌合集,解决从应用商店安装Solitaire Collection纸牌打开空白的问题
家里台式机换了win10系统,想给老妈玩那个纸牌游戏(我也超喜欢的!. 发现这个系统没有自带纸牌游戏Microsoft Solitaire Collection, 过分的是,连应用商店都没有...呵呵 ...
- 什么是OSI参考模型?
一.OSI参考模型 1.OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模 ...
- mysql显示一张表的索引
show index from tm_show.fulfillment_order;show index from tm_show.express_verify;show index from tra ...
- Linux必知必会--sed
致沅弟:至于当大事,全在明强二字. --<曾国藩家书> 参考资料:https://man.linuxde.net/sed https://www.jianshu.com/p/047cd ...
- Spring Cloud Consul Config 知识点
Spring Cloud Consul Config 是 Config Server 和 Client的替代方案. 搭建一个配置中心,可以选择的方案: Spring Cloud Config 或者 S ...
- Entity 类中加了@Id 注解后仍然出现org.hibernate.AnnotationException: No identifier specified for entity 错误
查看网上的资料,应该是报错的实体类com.example.domain.p.User中没有添加加主键的注解@Id,这个是必须的.但是我的实体类中明明已经添加了@Id,为什么还会报这个错误呢? 后来检查 ...
- 2019年12月份关于Android Studio 需要了解的知识总结
因为期末项目答辩的原因,我和我的小组成员一起写了个作品展示app 就是用AndroidStudio写的 具体功能呢还加上了云服务器,bmob,等等 我是不知道那个云服务器要怎么配置啊,也不会用,都是 ...