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())