我正在尝试通过命令行遵循Apache Kafka网站上的指南在Kafka中创建主题。 在运行命令时:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
我得到如下错误:
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)
我该如何解决这个问题?有什么好的文档来开始这个吗? 谢谢!
答案 0 :(得分:18)
似乎您的服务器未启动,请检查问题日志
杀死进程
sudo fuser -k 2181/tcp
运行zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
运行Kafka
bin/kafka-server-start.sh config/server.properties '
答案 1 :(得分:8)
如果我是你,我会试试这段代码:
bin / kafka-topics.sh --create --zookeeper localhost:2181 / kafka - 复制因子1 - 分区1 - 主题测试
如果您使用的集群中zookeeper分布在3个节点中,您应该localhost:2181/kafka
取代direccion1:2181,direction2:2181,direction3:2181/kafka
答案 2 :(得分:5)
它清楚地说0经纪人可用。通过
启动经纪人bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
基于Apache Kafka教程,然后尝试
答案 3 :(得分:2)
我遇到了同样的问题。我解决了这个问题。我认为这是因为没有后台启动。 所以,我们需要启动背景
bin/kafka-server-start.sh config/server.properties &
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test &
答案 4 :(得分:2)
我遇到了同样的问题,但最终我尝试了以下对我有用的步骤:
1)使用以下命令在Zookeeper中创建chroot:
zkCli.sh-服务器本地主机:2181
创建/ kafka1 []
2)对于kafka brokers配置,修改zookeeper.connect并添加chroot路径: 例如。
在server.properties中:
zookeeper.connect = localhost:2181 / kafka1
3)启动Zookeeper
4)启动Kafka服务器
5)创建如下主题: bin / kafka-topic.sh --create -zookeeper localhost:2181 / kafka1 -复制因子1-分区1-主题数据
6)确认创建的主题: bin / kafka-topics.sh --list --zookeeper本地主机:2181 / kafka1
答案 5 :(得分:1)
您的Zookeeper无法看到任何Kafka代理。请尝试登录Zookeepr控制台:bin/zkCli.sh -server localhost:2181
在控制台上运行[zk: localhost:2181(CONNECTED) 2] ls /brokers/ids
。一定不要出现任何经纪人。您需要重新启动所有Kafka代理,并检查kafka进程日志。有时,即使进程显示为正在运行(ps -ef | grep kafka
),它也可能没有真正完全启动,因为Zookeeper无法看到它。 Apache Kafka发行版0.11.0也遇到了同样的问题。
答案 6 :(得分:1)
对于那些确定代理已启动并正在运行的人,请检查您的server.properties
配置。
在我的情况下,kafka的znodes为/kafka
,如下所示。
zookeeper.connect=zk1.beta:2181,zk2.beta:2181,zk3.beta:2181/kafka
因此,在创建主题时尝试以下命令:
bin/kafka-topics.sh --create --zookeeper zk1.beta:2181/kafka --replication-factor 2 --partitions 2 --topic test2
答案 7 :(得分:0)
在删除我创建的唯一主题后,我遇到了同样的情况。
解决问题的方法是将Kafka和Zookeeper放下,更新Kafka设置(server.properties文件),我在其中添加以下设置
delete.topic.enable=true
保存文件,将Zookeeper和Kafka打开,所有内容都照常运行。
答案 8 :(得分:0)
确保kafka服务器已正确启动。如果您使用-dameon
参数将kafka服务器作为守护程序启动。尝试将其删除,然后查看启动期间是否有任何错误。
我遇到的问题是文件访问问题,用户运行kafka时无法访问我配置的日志目录。在我授予访问权限后,它就可以使用!
答案 9 :(得分:0)
尝试通过以下方式添加服务器:
MissingMemberException: 'ScopeStorage' object has no attribute 'commands'
答案 10 :(得分:0)
服务器上可能有以前部署中的一个遗留的,失控的zookeeper。列出豆荚,容器,过程等,并检查它们的年龄/开始时间以发现它。
答案 11 :(得分:0)
在我的情况下,该错误是由于我在Zookeeper可用之前就开始创建主题而引起的。由于我用脚本完成了所有操作,因此在创建主题之前引入一些延迟会有所帮助。如果您的zookeeper客户端端口为2181
,则可以通过以下方法检查代理的可用性:
echo dump | nc zookeeper 2181 | grep brokers
答案 12 :(得分:0)
就我而言,config/server.properties
:
zookeeper.connect=localhost:2181
但是我创建这样的主题:
$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test
然后我遇到了这个问题。
我通过修复以下创建主题命令来解决此问题:
$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
您必须确保--zookeeper
的选项与zookeeper.connect
中的config/server.properties
相同
答案 13 :(得分:0)
检查是否所有经纪人都已注册到Zookeeper:
zookeeper-shell.sh localhost:2181 ls /brokers/ids
在括号[]
登录到该ID所在的计算机,然后重新启动代理:
kafka-server-stop.sh
nohup kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
希望有帮助。
答案 14 :(得分:0)
删除在以下目录中创建的日志和使用者偏移量文件夹。
C:\ Kafka \ kafka_2.12-2.5.0 \ data \ zookeeper
PS:您可以松开所有先前的主题详细信息。
答案 15 :(得分:-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
创建这些文件后,您必须使用以下更改进行配置:
在“server-1.properties”中:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
host.name=localhost
(端口号必须是server.properties + 1中的端口号。我有9092所以我必须写9093)
在“server-2.properties”中:
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
host.name=localhost
(端口号必须是server-1的旁边。在我的情况下是9094)