我刚接触Kafka,似乎对Apache Kafka的“快速入门”指南有几个问题,可以在这里找到:https://kafka.apache.org/quickstart#quickstart_kafkaconnect
最终,我正在尝试学习如何加载带有许多kafka消息的kafka队列,因此本快速入门指南的Step 7部分似乎是相关的。
我在这里安装了二进制下载包(scala2.11- kafka_ 2.11 -1.1.0.tgz ):https://kafka.apache.org/downloads
我最初试图直接跳到第7步,但在找到这个问题(Kafka Connect implementation errors)后,我意识到我必须执行之前的几个步骤
因此,我成功地完成了第一步:
tar -xzf kafka_2.11-1.1.0.tgz
cd kafka_2.11-1.1.0
然后,我执行了第二步:
bin/zookeeper-server-start.sh config/zookeeper.properties
但是我得到了一个错误
ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:90)
at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:117)
at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:87)
at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:53)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
但当我在同一步骤中运行下一个命令时:
bin/kafka-server-start.sh config/server.properties
Kafka服务器似乎运行成功?
因此,我尝试继续步骤3来创建一个主题:
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.
[2018-04-09 14:13:26,908] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.
(kafka.admin.TopicCommand$)
然后尝试第4步:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
这似乎是可行的,我可以写一条消息,但是我得到了一个连接错误(这可能是由于之前的步骤没有成功完成)
kafka_2.11-1.1.0 user$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>This is a message
[2018-04-09 14:17:52,631] WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-04-09 14:17:52,687] WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
有没有人知道为什么会发生这些问题,以及我如何解决它们?我在那个教程中找不到关于这些问题的更多信息
发布于 2018-04-10 00:51:57
如错误所示,您在ZK的默认端口上运行了一些东西。关闭它或更改zookeeper属性文件以使用另一个端口。
发布于 2018-04-10 02:12:34
地址localhost:2181
已在使用中。既然Zookeeper不能启动,那么Kafka brokers也不会启动。replication-factor
必须小于或等于可用代理的数量,并且由于没有可用的代理,因此将报告以下错误(即使您正在使用--replication-factor 1
)。
Error while executing topic command : Replication factor: 1 larger than available brokers: 0.
[2018-04-09 14:13:26,908] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.
(kafka.admin.TopicCommand$)
您需要停止在2181中运行的进程,或者将ZK默认端口更改为当前未使用的端口。
要查看端口2181中正在运行的内容(PID),请运行
lsof -i -n -P | grep 2181
如果您想要终止该进程,请运行
kill -9 PID
其中PID是您可以通过lsof
命令获取的进程ID。
否则,您需要通过修改参数clientPort=2181
来更改zookeeper.properties
文件中的端口。最后,您需要相应地更改server.properties
文件中的zookeeper.connect=localhost:2181
参数。
https://stackoverflow.com/questions/49734240
复制相似问题