Python连接需要Kerberos认证的Kafka

1. 安装Kerberos客户端

yum install -y krb5-libs krb5-workstation

2. 准备配置文件

  • jaas.conf
  • krb5.conf
  • user.keytab(kafka.keytab)

3. 修改hosts文件

kdc服务器的host->ip映射加入hosts文件中

4. 执行Kerberos认证

kinit -kt kafka.keytab kafka

5. 安装Python第三方库

pip3 install kafka-python
pip3 install gssapi

测试代码

import os
from kafka import KafkaProducer


os.environ['KAFKA_OPTS'] = '-Djava.security.auth.login.config=/path/to/jaas.conf -Djava.security.krb5.conf=/path/to/krb5.conf'

producer = KafkaProducer(
        bootstrap_servers='server01:9092,server02:9092,server03:9092',
        security_protocol='SASL_PLAINTEXT',
        sasl_mechanism='GSSAPI',
        ssl_certfile=r'/path/to/kafka.keytab',
        sasl_kerberos_domain_name='hadoop.hadoop.com',
        sasl_kerberos_service_name='kafka'
    )

producer.send('topic_name', 'Hello, world!'.encode())

你可能感兴趣的:(Python,python,kafka)