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

 更新时间:2020年06月06日 10:48:20   作者:小竹筒  
这篇文章主要介绍了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样例

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方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python+opencv边缘提取与各函数参数解析

    python+opencv边缘提取与各函数参数解析

    这篇文章主要介绍了python+opencv边缘提取与各函数参数解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python 保存float类型的小数的位数方法

    python 保存float类型的小数的位数方法

    今天小编就为大家分享一篇python 保存float类型的小数的位数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 基于Python实现银行卡识别的示例代码

    基于Python实现银行卡识别的示例代码

    银行卡识别是一个在金融、安全等领域具有重要应用的问题,本文主要为大家介绍了如何使用Python和深度学习技术来实现银行卡识别功能,需要的可以参考下
    2024-03-03
  • Python基于pygame实现图片代替鼠标移动效果

    Python基于pygame实现图片代替鼠标移动效果

    这篇文章主要介绍了Python基于pygame实现图片代替鼠标移动效果,可实现将鼠标箭头转换成图形的功能,涉及pygame图形操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 关于Python中的闭包详解

    关于Python中的闭包详解

    大家好,本篇文章主要讲的是关于Python中的闭包详解,感兴趣的同学感快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 简单上手Python中装饰器的使用

    简单上手Python中装饰器的使用

    这篇文章主要介绍了Python中装饰器的使用,是Python进阶学习中的重要知识,需要的朋友可以参考下
    2015-07-07
  • Android Q之气泡弹窗的实现示例

    Android Q之气泡弹窗的实现示例

    这篇文章主要介绍了Android Q之气泡弹窗的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python如何使用pywebview打造一个现代化的可视化GUI界面详解

    python如何使用pywebview打造一个现代化的可视化GUI界面详解

    pywebview是一个轻量级的跨平台库,它可以让你在Python程序中嵌入一个浏览器窗口,下面这篇文章主要给大家介绍了关于python如何使用pywebview打造一个现代化的可视化GUI界面的相关资料,需要的朋友可以参考下
    2024-07-07
  • Python Gluon参数和模块命名操作教程

    Python Gluon参数和模块命名操作教程

    这篇文章主要介绍了Python Gluon参数和模块命名操作,结合实例形式详细分析了Python Gluon模块功能及基本使用技巧,需要的朋友可以参考下
    2019-12-12
  • 详解用Python爬虫获取百度企业信用中企业基本信息

    详解用Python爬虫获取百度企业信用中企业基本信息

    这篇文章主要介绍了详解用Python爬虫获取百度企业信用中企业基本信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07

最新评论