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


Posted in Python onJune 06, 2020

如何通过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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
python正则表达式中的括号匹配问题
Dec 14 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Tornado 多进程实现分析详解
Jan 12 Python
python实现SOM算法
Feb 23 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
python中安装django模块的方法
Mar 12 Python
python 如何将office文件转换为PDF
Sep 22 Python
如何在C++中调用Python
May 21 Python
pandas分批读取大数据集教程
Jun 06 #Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 #Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 #Python
python访问hdfs的操作
Jun 06 #Python
Python API 操作Hadoop hdfs详解
Jun 06 #Python
python读取hdfs上的parquet文件方式
Jun 06 #Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 #Python
You might like
神族 Protoss 历史背景
2020/03/14 星际争霸
如何使用PHP中的字符串函数
2006/11/24 PHP
PHP中比较时间大小实例
2014/08/21 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
vuex 的简单使用
2018/03/22 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
Python制作词云的方法
2018/01/03 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
python的launcher用法知识点总结
2020/08/07 Python
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
档案接收函范文
2014/01/10 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
大学应届生的自我评价
2014/03/06 职场文书
学生会主席演讲稿
2014/04/25 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
日语系毕业求职信
2014/07/27 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
研究生导师推荐信
2015/03/25 职场文书
python实现简单的三子棋游戏
2022/04/28 Python