Docker 错误无效配置,在Kafka群集中异常退出

Docker 错误无效配置,在Kafka群集中异常退出,docker,apache-kafka,apache-zookeeper,Docker,Apache Kafka,Apache Zookeeper,我有三个不同的节点,每个节点上都有带有Ubuntu的docker。我可以在docker本地运行zookeeper服务器(我的意思是没有任何集群配置),但我想用这三个节点创建kafka集群;事实上,我在每个节点上安装了docker,并加载了Ubuntu。我在docker环境中为“150.20.11.157”配置“zookeeper.properties”,如下所示: dataDir=/tmp/zookeeper/data tickTime=2000 initLimit=10 syncLimit=5

我有三个不同的节点,每个节点上都有带有Ubuntu的docker。我可以在docker本地运行zookeeper服务器(我的意思是没有任何集群配置),但我想用这三个节点创建kafka集群;事实上,我在每个节点上安装了docker,并加载了Ubuntu。我在docker环境中为“150.20.11.157”配置
“zookeeper.properties”
,如下所示:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=0.0.0.0:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=150.20.11.134:2888:3888
server.3=0.0.0.0:2888:3888
clientPort=2186
对于节点150.20.11.134,docker环境中的“zookeeper.properties”文件如下所示:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=0.0.0.0:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=150.20.11.134:2888:3888
server.3=0.0.0.0:2888:3888
clientPort=2186
对于节点150.20.11.137,docker环境中的“zookeeper.properties”文件如下所示:

dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=0.0.0.0:2888:3888
server.3=150.20.11.137:2888:3888
clientPort=2186
dataDir=/tmp/zookeeper/data
tickTime=2000
initLimit=10
syncLimit=5
server.1=150.20.11.157:2888:3888
server.2=150.20.11.134:2888:3888
server.3=0.0.0.0:2888:3888
clientPort=2186
此外,我还为节点150.20.11.157设置了如下“server.properties”:

broker.id=0
port=9092
listeners = PLAINTEXT://150.20.11.157:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186
节点150.20.11.134的“server.properties”是:

broker.id=1
port=9092
listeners = PLAINTEXT://150.20.11.134:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186
节点150.20.11.137的“server.properties”是:

broker.id=2
port=9092
listeners = PLAINTEXT://150.20.11.137:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=150.20.11.157:2186,150.20.11.134:2186,
150.20.11.137:2186
问题是当我在每个节点的docker上运行zookeeper服务器时。我得到这个错误:

[2019-01-16 12:45:54,588] INFO Reading configuration from: ./config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2019-01-16 12:45:54,601] INFO Resolved hostname: 172.28.10.137 to address: /172.28.10.137 (org.apache.zookeeper.server.quorum.QuorumPeer) [2019-01-16 12:45:54,603] INFO Resolved hostname: 0.0.0.0 to address: /0.0.0.0 (org.apache.zookeeper.server.quorum.QuorumPeer) [2019-01-16 12:45:54,603] INFO Resolved hostname: 172.28.10.157 to address: /172.28.10.157 (org.apache.zookeeper.server.quorum.QuorumPeer) [2019-01-16 12:45:54,603] INFO Defaulting to majority quorums (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2019-01-16 12:45:54,604] ERROR Invalid config, exiting abnormally (org.apache.zookeeper.server.quorum.QuorumPeerMain) org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing ./config/zookeeper.properties at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:156) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:104) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81) Caused by: java.lang.IllegalArgumentException: /tmp/zookeeper/data/myid file is missing at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:152) ... 2 more Invalid config, exiting abnormally [2019-01-16 12:45:54588]从中读取配置信息:./config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2019-01-16 12:45:54601]信息解析主机名:172.28.10.137到地址:/172.28.10.137(org.apache.zookeeper.server.quorum.QuorumPeer) [2019-01-16 12:45:54603]信息解析主机名:0.0.0.0到地址:/0.0.0.0(org.apache.zookeeper.server.quorum.qourumpeer) [2019-01-16 12:45:54603]信息解析主机名:172.28.10.157到地址:/172.28.10.157(org.apache.zookeeper.server.quorum.qourumpeer) [2019-01-16 12:45:54603]默认为多数配额的信息(org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2019-01-16 12:45:54604]错误无效配置,异常退出(org.apache.zookeeper.server.quorum.QuorumPeerMain) org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException:处理错误。/config/zookeeper.properties 在org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:156)上 位于org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:104) 位于org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81) 原因:java.lang.IllegalArgumentException:/tmp/zookeeper/data/myid文件丢失 位于org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408) 位于org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:152) ... 还有两个 配置无效,异常退出 你能告诉我如何让一个Kafka集群有三个docker,每个docker位于一个物理节点上吗


提前谢谢你。

我也遇到过这个问题

我认为这条线索在日志中,即

原因:java.lang.IllegalArgumentException: /tmp/zookeeper/data/myid文件在 org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408)

zookeeper.properties
文件中的以下行提供了zookeeper集合的详细信息:

server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
当其中一个zookeeper服务器启动时,它通过查看自己的数据目录中的
myid
文件来知道它是哪个服务器,在本例中,该文件将是
/tmp/zookeeper/data

因此,您只需在每个服务器的上述目录中创建一个名为
myid
的文件,然后只写x=
1
2
3
(它们对应于zookeeper.properties文件中的服务器。
x

参考链接-


希望这有帮助

我也遇到过这种情况

我认为这条线索在日志中,即

原因:java.lang.IllegalArgumentException: /tmp/zookeeper/data/myid文件在 org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408)

zookeeper.properties
文件中的以下行提供了zookeeper集合的详细信息:

server.1=0.0.0.0:2888:3888
server.2=150.20.11.134:2888:3888
server.3=150.20.11.137:2888:3888
当其中一个zookeeper服务器启动时,它通过查看自己的数据目录中的
myid
文件来知道它是哪个服务器,在本例中,该文件将是
/tmp/zookeeper/data

因此,您只需在每个服务器的上述目录中创建一个名为
myid
的文件,然后只写x=
1
2
3
(它们对应于zookeeper.properties文件中的服务器。
x

参考链接-

希望这有帮助