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抓取Discuz!用户名脚本代码
Dec 30 Python
Python实现的石头剪子布代码分享
Aug 22 Python
Flask入门教程实例:搭建一个静态博客
Mar 27 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
对python中执行DOS命令的3种方法总结
May 12 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
python调用win32接口进行截图的示例
Nov 11 Python
python 进阶学习之python装饰器小结
Sep 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
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python类定义和类继承详解
2015/05/08 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python实现按长宽比缩放图片
2018/06/07 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
python 内置函数汇总详解
2019/09/16 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
工程资料员岗位职责
2014/03/10 职场文书
函授生自我鉴定
2014/03/25 职场文书
党员自评材料范文
2014/12/17 职场文书
学习经验交流会总结
2015/11/02 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Golang 字符串的常见操作
2022/04/19 Golang