【问题标题】:Issues with Apache Kafka QuickstartApache Kafka 快速入门的问题
【发布时间】:2018-09-18 22:17:12
【问题描述】:

我是 Kafka 新手,在此处找到的 Apache Kafka 的“快速入门”指南似乎有几个问题: https://kafka.apache.org/quickstart#quickstart_kafkaconnect

最终,我正在尝试学习如何加载包含许多 kafka 消息的 kafka 队列,因此本快速入门指南的第 7 步部分似乎很相关。

我安装了在这里找到的二进制下载(Scala 2.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

然后我按照步骤 2:

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)

有谁知道为什么会出现这些问题以及如何解决这些问题?我在该教程中找不到有关这些问题的更多信息

【问题讨论】:

  • 我猜你需要先启动 zookeeper 才能启动 kafka 服务器
  • @nitnamby 是的,我意识到大多数后续问题可能与命令 bin/zookeeper-server-start.sh config/zookeeper.properties 无法正常工作有关

标签: apache-kafka


【解决方案1】:

正如错误提示的那样,您在 ZK 的默认端口上运行了一些东西。关闭它或更改 zookeeper 属性文件以使用另一个端口。

【讨论】:

    【解决方案2】:

    地址localhost:2181 已被使用。由于 Zookeeper 无法启动,因此 Kafka 代理也不会启动。 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 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-08
      • 2019-03-09
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多