Zookeeper与Kafka Docker 形象

kiz8lqtg  于 2022-12-09  发布在  Apache
关注(0)|答案(1)|浏览(170)

嗨我创建新的Zookeeper容器和Kafka容器
我用这个命令运行zookeeper

docker run -d \
--name zookeeper \
-p 2181:2181 \
jplock/zookeeper

我用这个命令来运行Kafka

docker run -d \
--name kafka \
-p 7203:7203 \
-p 9092:9092 \
-e KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 \
-e ZOOKEEPER_IP=127.0.0.1 \
ches/kafka

并使用此命令创建新主题

docker run \
--rm ches/kafka kafka-topics.sh \
--create \
--topic senz \
--replication-factor 1 \
--partitions 1 \
--zookeeper 127.0.0.1:2181

但是当创建Kafka新的Kafka主题时,我遇到了这个错误,并停止了Kafka容器

[2021-03-03 17:08:35,797] WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
    java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
    [2021-03-03 17:08:36,898] WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
    java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
    [2021-03-03 17:08:38,006] WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
    java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
    Exception in thread "main" org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server '127.0.0.1:2181' with timeout of 30000 ms
        at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:1233)
        at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:157)
        at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:131)
        at kafka.utils.ZkUtils$.createZkClientAndConnection(ZkUtils.scala:106)
        at kafka.utils.ZkUtils$.apply(ZkUtils.scala:88)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:56)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)

谢谢你的帮助。

yshpjwxd

yshpjwxd1#

在网络的解决方案中我们必须将网络指针指向zookeeper和Kafka
解决方法是:

**
1.通过Docker创建新网络
**

docker network create kafka-net

2.现在把你的关系网牵扯进Zookeeper和Kafka这样的人:

docker run -d\
--name zookeeper \
--network kafka-net
-p 2181:2181 \
jplock/zookeeper

Kafka是这样说的:

docker run -d \
--name kafka \
--network kafka-net
-p 7203:7203 \
-p 9092:9092 \
-e KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 \
-e ZOOKEEPER_IP=zookeeper \
ches/kafka

相关问题