我希望能够使用pykafka以编程方式在Kafka中创建主题。我知道访问TopicDict会自动创建一个主题,如果不存在但我不知道如何控制分区/副本的数量。此外,它有一个令人讨厌的错误,如果卡夫卡垮台,它会在无限循环中结束。基本上我想做类似以下的事情:
create_topic('mytopic', partitions=2, replicas=3)
答案 0 :(得分:1)
Pykafka是Kafka生产者和消费者API的Python实现,您想要实现的是在Kafka中使用另一个API执行的操作,即管理/操作API(实际上是一组Java类)。我不认为Pykafka有一个API /包装器。 您可能正在观察的是由Kafka自动创建的主题。您可以做的是使用属性配置自动创建的主题的默认分区数和副本数。
答案 1 :(得分:0)
您可以使用subprocess
如果您安装Kafka binaries,则可以执行此类操作
from pykafka import KafkaClient
import subprocess
client = KafkaClient(hosts="localhost:9092")
subprocess.Popen("PATH/TO/KAFKA/BINARY/kafka_2.11-1.0.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic testtopic --replication-factor 1 --partitions 10".split())