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中逻辑运算符的使用
May 13 Python
Python的净值数据接口调用示例分享
Mar 15 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
使用turtle绘制五角星、分形树
Oct 06 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
python中os.path.join()函数实例用法
May 26 Python
python前后端自定义分页器
Apr 13 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
CI框架常用方法小结
2016/05/17 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python探索之pLSA实现代码
2017/10/25 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
python画双y轴图像的示例代码
2019/07/07 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
python time()的实例用法
2020/11/03 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
团工委书记自荐书范文
2013/12/17 职场文书
节电标语大全
2014/06/23 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
先进工作者个人总结
2015/02/15 职场文书
初中重阳节活动总结
2015/05/05 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技