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循环语句之break与continue的用法
Oct 14 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
python docx 中文字体设置的操作方法
May 08 Python
Pandas 同元素多列去重的实例
Jul 03 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
使用Python实现画一个中国地图
Nov 23 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 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
thinkphp控制器调度使用示例
2014/02/24 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php中in_array函数用法探究
2014/11/25 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Python  Django 母版和继承解析
2019/08/09 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
python 负数取模运算实例
2020/06/03 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
Java提供了哪些企业应用编程接口
2015/02/13 面试题
个人自我鉴定写法
2013/11/30 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
文秘应届生求职信
2014/07/05 职场文书
学校四风对照检查材料
2014/08/28 职场文书
离婚协议书的范本
2015/01/27 职场文书
2015选调生工作总结
2015/07/24 职场文书
干部考核工作总结2015
2015/07/24 职场文书
大学学生会竞选稿
2015/11/19 职场文书
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python