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)合并的方法
Sep 23 Python
Python实现二叉堆
Feb 03 Python
python读写json文件的简单实现
Apr 11 Python
Python实现发送QQ邮件的封装
Jul 14 Python
Python装饰器用法实例总结
Feb 07 Python
如何在Django项目中引入静态文件
Jul 26 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
python中有函数重载吗
May 28 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
Django中template for如何使用方法
Jan 31 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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
一个MYSQL操作类
2006/11/16 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
PHP安全上传图片的方法
2015/03/21 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python线程同步的实现代码
2018/10/03 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
中学生班主任评语
2014/01/30 职场文书
团日活动总结报告
2014/06/25 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
工作收入证明模板
2015/06/12 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
公司年会主持词范文!
2019/05/07 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android