首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Kerberos连接Kafka-Python集群

使用Kerberos连接Kafka-Python集群
EN

Stack Overflow用户
提问于 2016-09-06 22:05:17
回答 2查看 8.9K关注 0票数 9

我正在尝试用Kafka -Python连接到Kafka-Python,Kafka集群有Kerberos,我们需要构建一些命令来执行一些步骤。

我在集群中创建了一个主题,并使用./kafka-console-producer.sh./kafka-console-consumer.sh进行了测试,效果非常好。

但是当我尝试连接Kafka-Python时,我遇到了一个问题。请看下面的代码:

代码语言:javascript
复制
def produce():
    print ('Producer')
    k_producer = KafkaProducer(bootstrap_servers='hostname:6667', 
                               security_protocol='SASL_PLAINTEXT',
                               sasl_plain_username='machine_usr',
                               sasl_plain_password='machine_pwd',
                               sasl_mechanism='PLAIN')
    for i in range(10):
        print ('Before send')
        k_producer.send('myTopic', 'Testing My Topic  ' + str(i))
        print ('After send')

好吧,运行这段代码,我在30秒后收到了这个错误消息:

代码语言:javascript
复制
File "C:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\producer\kafka.py", line 328, in __init__
File "C:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\client_async.py", line 202, in __init__
File "C:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\client_async.py", line 791, in check_version
kafka.errors.NoBrokersAvailable: NoBrokersAvailable

我在远程机器上运行它。我使用的bootstrap_server是Zookeeper的主机名和端口,但不能很好地工作。

我发现关于它的东西很少,在Kafka-Python的git中我发现他们有implemented

有没有其他的连接方式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 01:05:17

好吧,伙计们,

我找到问题了。

问题是使用Key Tab的Python中的Kafka producer不支持Kerberos。

要使用Key Tab,我们需要设置一个java环境变量。

根据Hortonworks,我们需要将client_jaas_client设置为连接。

解决方案是使用Py4j调用JVM中的Kafka生产者。

请参阅示例here

票数 4
EN

Stack Overflow用户

发布于 2018-03-13 23:54:29

如果任务是在Python语言中解决这个问题,另一种选择是使用内部使用librdkafkaconfluent-kafka-python库,该库是用C编写的,并支持librdkafka,并使用密钥表文件。这不需要使用单独的Java进程通过SASL与kafka进行通信。

有关说明,另请参阅librdkafka库的文档:

https://github.com/edenhill/librdkafka/wiki/Using-SASL-with-librdkafka -常规介绍https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md -可以传递到python中confluent_kafka.Producerconfluent_kafka.Consumer的构造函数的属性

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39351046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档