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 相关文章推荐
Python open()文件处理使用介绍
Nov 30 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
定制FileField中的上传文件名称实例
Aug 23 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
python 表格打印代码实例解析
Oct 12 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
python deque模块简单使用代码实例
Mar 12 Python
python实现一个猜拳游戏
Apr 05 Python
Python如何解除一个装饰器
Aug 07 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
PHP实现HTTP断点续传的方法
2015/06/17 PHP
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Django视图、传参和forms验证操作
2020/07/15 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
物理专业本科生自荐信
2014/01/30 职场文书
精彩广告词大全
2014/03/19 职场文书
骨干教师考核方案
2014/05/09 职场文书
2014年党小组工作总结
2014/12/20 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
Python进度条的使用
2021/05/17 Python