python网络安全面试题_【PythonSAP面试题】面试问题:Python通… - 看准网

【坑】Python通过kerberos安全认证操作kafka

如何通过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()

文稿实践参考如下::

[1].https://www..com/qiannianyuan/p/greenplum_compile.html

[2].https://blog..net/weixin_28738845/article/details/82598386

[3].https://blog..net/liao392781/article/details/80776528

文稿内容,仅作学习记录

竹筒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值