gpt4 book ai didi

Python通过kerberos安全认证操作kafka方式

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python通过kerberos安全认证操作kafka方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

如何通过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样例 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from kafka import KafkaProducer
from kafka.errors import KafkaError
import os
 
class 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方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/weixin_42261073/article/details/84074470 。

最后此篇关于Python通过kerberos安全认证操作kafka方式的文章就讲到这里了,如果你想了解更多关于Python通过kerberos安全认证操作kafka方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com