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基础教程之序列详解
Aug 29 Python
python之yield表达式学习
Sep 02 Python
python使用socket连接远程服务器的方法
Apr 29 Python
python连接MySQL数据库实例分析
May 12 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
tensorflow实现逻辑回归模型
Sep 08 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
python如何利用traceback获取详细的异常信息
Jun 05 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
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
yii用户注册表单验证实例
2015/12/26 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
js Dom实现换肤效果
2017/10/21 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
Python常用特殊方法实例总结
2019/03/22 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
建筑工程造价专业自荐信
2014/07/08 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang