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备份Mysql脚本
Aug 11 Python
Python实现测试磁盘性能的方法
Mar 12 Python
Python入门之modf()方法的使用
May 15 Python
python django 实现验证码的功能实例代码
May 18 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
PyQt5每天必学之切换按钮
Aug 20 Python
python的继承知识点总结
Dec 10 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
Restful_framework视图组件代码实例解析
Nov 17 Python
Python中Selenium对Cookie的操作方法
Jul 09 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结合ajax实现手机发红包的案例
2016/10/13 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Python赋值语句后逗号的作用分析
2015/06/08 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
印度购物网站:TATA CLiQ
2017/11/23 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
应聘教师推荐信
2013/10/31 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
高三学生评语大全
2014/04/25 职场文书
小学节能减排倡议书
2014/05/15 职场文书
改革共识倡议书
2014/08/29 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
干部培训简讯
2015/07/20 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python