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格式化css文件的方法
Mar 10 Python
Python selenium文件上传方法汇总
Nov 19 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
Python深拷贝与浅拷贝用法实例分析
May 05 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
python 实现汉诺塔游戏
Nov 28 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
java script编程起步(第三课)
2007/01/10 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python实发邮件实例详解
2019/11/11 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
高中学校对照检查材料
2014/08/31 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers