创建Kafka主题时出错 - 复制因子大于可用代理

Nic*_*ole 37 apache-kafka

我正在尝试通过命令行遵循Apache Kafka网站上的指南在Kafka中创建主题.在运行命令时:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

Error while executing topic command replication factor: 1 larger than available
brokers: 0
kafka.admin.AdminOperationException: replication factor: 1 larger than available
 brokers: 0
        at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:171)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:55)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)

[2015-10-13 14:25:38,607] INFO Processed session termination for sessionid: 0x15
06056566d0004 (org.apache.zookeeper.server.PrepRequestProcessor)
[2015-10-13 14:25:38,608] INFO Closed socket connection for client /127.0.0.1:33
391 which had sessionid 0x1506056566d0004 (org.apache.zookeeper.server.NIOServer
Cnxn)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?有什么好的文档来开始这个吗?谢谢!!

vaq*_*han 22

似乎您的服务器未启动,请检查日志是否有问题

杀死进程

sudo fuser -k 2181/tcp
Run Code Online (Sandbox Code Playgroud)

运行zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties
Run Code Online (Sandbox Code Playgroud)

跑卡夫卡

bin/kafka-server-start.sh config/server.properties  ' 
Run Code Online (Sandbox Code Playgroud)


小智 8

如果我是你,我会尝试这个代码:

bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --rerelication-factor 1 --partitions 1 --topic test

如果您使用的是地方的动物园管理员的你应该substitue 3个节点分配一个群集localhost:2181/kafkadireccion1:2181,direction2:2181,direction3:2181/kafka


Rey*_*rga 8

对于那些确定代理已启动并正在运行的人,请检查您的server.properties配置。

在我的情况下,kafka 的 znodes/kafka如下所示。

zookeeper.connect=zk1.beta:2181,zk2.beta:2181,zk3.beta:2181/kafka
Run Code Online (Sandbox Code Playgroud)

因此,在创建主题时尝试以下命令:

bin/kafka-topics.sh --create --zookeeper zk1.beta:2181/kafka --replication-factor 2 --partitions 2 --topic test2
Run Code Online (Sandbox Code Playgroud)


小智 5

显然,有0个经纪人可用。通过创建经纪人

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
Run Code Online (Sandbox Code Playgroud)

基于Apache Kafka教程,然后尝试


小智 5

我也遇到了同样的问题。我解决了这个问题。我认为这是因为没有后台启动。所以,我们需要启动背景

bin/kafka-server-start.sh config/server.properties &
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test &
Run Code Online (Sandbox Code Playgroud)


小智 -1

我曾经也有过一样的问题。您必须遵循指南的这一部分: http://kafka.apache.org/documentation.html#quickstart_multibroker

我没有创建任何经纪人。创建 2 个新经纪人即可解决问题。请按照以下步骤操作:

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
Run Code Online (Sandbox Code Playgroud)

创建该文件后,您必须对其进行一些更改:

在“server-1.properties”中:

broker.id=1
port=9093 
log.dir=/tmp/kafka-logs-1
host.name=localhost
Run Code Online (Sandbox Code Playgroud)

(端口号必须是你的server.properties中的端口号+1。我有9092,所以我必须写9093)

在“server-2.properties”中:

broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
host.name=localhost
Run Code Online (Sandbox Code Playgroud)

(端口号必须是 server-1 旁边的端口号。在我的例子中是 9094)