时间:2021-05-22
如何通过Kerberos认证.
1.安装Kerberos客户端
CentOS:
yum install krb5-workstation
使用which kinit查看是否安装成功;
2.拷贝Kerberos配置文件
conf目录下krb5.conf和kafka.keytab和jaas.conf拷贝到客户端机器的etc目录, 同时,krb5.conf中的kdc集群主机名和IP配置到客户端机器hosts配置文件中
3.Kinit客户端通过kerberos认证
获取Principal
klist -kt kafka.keytab
4.安装python-gssapi
pip install gssapi
遇到的问题,如下:
a.在linux中执行wget命令提示 -bash: wget: command not found 解决方法
yum -y install wget
b.报错:bash: pip: command not found
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip -V #查看pip版本
python -m pip install --upgrade --force pip easy_install -U setuptools pip install --upgrade setuptools
3.pip安装出现Command “python setup.py egg_info” failed with error code 1 的解决方法
Traceback (most recent call last): File “”, line 1, in File “/tmp/pip-install-6HfDE3/gssapi/setup.py”, line 109, in raise Exception("Could not find main GSSAPI shared library. Please " Exception: Could not find main GSSAPI shared library. Please try setting GSSAPI_MAIN_LIB yourself or setting ENABLE_SUPPORT_DETECTION to ‘false'
Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-6HfDE3/gssapi/
yum install -y krb5-devel.x86_64
4.关于error: command ‘gcc' failed with exit status 1错误的解决方法
yum install gcc python-devel
安装kafka-python
pip install kafka-python
初始化环境变量
export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/conf/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf"
Python操作kafka样例
from kafka import KafkaProducerfrom kafka.errors import KafkaErrorimport osclass Kafka_Producer(): def __init__(self, kafkahost, kafkaport, kafkatopic): self.kafkaHost = kafkahost self.kafkaPort = kafkaport self.kafkatopic = kafkatopic self.producer = KafkaProducer( bootstrap_servers = '{kafka_host}:{kafka_port}'.format(kafka_host=self.kafkaHost,kafka_port=self.kafkaPort), security_protocol="SASL_PLAINTEXT", sasl_mechanism="GSSAPI", sasl_kerberos_service_name="kafka", compression_type='gzip' #压缩方式 ) def sendFileData(self, params): try: f = open(params,'rb') parmasMessage = f.read(-1).strip() producer = self.producer producer.send(self.kafkatopic, parmasMessage) producer.flush() except KafkaError as e: print (e) def main(): filePath = "/home/public/data/" topic = "demo" producer = Kafka_Producer("xxx.xx.xx.xx","9092",topic) dirList = os.listdir(filePath) for fileName in dirList: producer.sendFileData(filePath+fileName) print('send success!!!')if __name__=='__main__': main()以上这篇Python通过kerberos安全认证操作kafka方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。具体请查阅官网2.需要安装的包(基于centos)yumi
kafka的认证方式一般有如下3种:1.SASL/GSSAPI从版本0.9.0.0开始支持2.SASL/PLAIN从版本0.10.0.0开始支持3.SASL/S
springboot对kafka的client很好的实现了集成,使用非常方便,本文也实现了一个在springboot中实现操作kafka的demo。1.POM配
。我们在淘宝店开业时需要完成很多操作。例如,淘宝店认证是必不可少的一步。为什么很多淘宝店说不能进入淘宝店认证的界面?。。淘宝开业认证,账号因安全问题未通过审查:
通过Python操作注册表有两种方式,第一种是通过Python的内置模块_winreg;另一种方式就是Win32ExtensionForPython的win32