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两种遍历字典(dict)的方法比较
May 29 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
python select.select模块通信全过程解析
Sep 20 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
python使用itchat实现手机控制电脑
Feb 22 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
python 搜索大文件的实例代码
Jul 08 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python集合能干吗
Jul 19 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
javascript some()函数用法详解
2014/11/13 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
深入理解python try异常处理机制
2016/06/01 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
Python学习小技巧总结
2018/06/10 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
基于python实现百度翻译功能
2019/05/09 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
python函数定义和调用过程详解
2020/02/09 Python
python实现同一局域网下传输图片
2020/03/20 Python
五种Python转义表示法
2020/11/27 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
公司领导推荐信
2013/11/12 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Go语言基础map用法及示例详解
2021/11/17 Golang
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫