M_G*_*_Gh 1 apache-kafka docker apache-zookeeper
我有三个不同的节点,每个节点上都有 docker 和 Ubuntu。我可以在本地docker上运行zookeeper服务器(我的意思是没有任何集群配置),但我想用这三个节点创建kafka集群;事实上,我在每个节点上安装了 docker,并加载了 Ubuntu。我"zookeeper.properties"在 docker 环境中配置“150.20.11.157”,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
对于节点150.20.11.134,docker环境中的“zookeeper.properties”文件是这样的:
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
Run Code Online (Sandbox Code Playgroud)
对于节点150.20.11.137,docker环境中的“zookeeper.properties”文件是这样的:
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
Run Code Online (Sandbox Code Playgroud)
另外,我为节点 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
Run Code Online (Sandbox Code Playgroud)
节点 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
Run Code Online (Sandbox Code Playgroud)
节点 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
Run Code Online (Sandbox Code Playgroud)
问题是当我在每个节点的docker上运行zookeeper服务器时。我收到此错误:
[2019-01-16 12:45:54,588] 信息 从以下位置读取配置:./config/zookeeper.properties
(org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2019-01-16 12:45:54,601] INFO 解析主机名:172.28.10.137 到地址:/172.28.10.137 (org.apache.zookeeper.server.quorum.QuorumPeer)
[2019-01-16 12:45:54,603] INFO 解析主机名:0.0.0.0 到地址:/0.0.0.0 (org.apache.zookeeper.server.quorum.QuorumPeer)
[2019-01-16 12:45:54,603] INFO 解析主机名:172.28.10.157 到地址:/172.28.10.157 (org.apache.zookeeper.server.quorum.QuorumPeer)
[2019-01-16 12:45:54,603] INFO 默认为多数仲裁(org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2019-01-16 12:45:54,604] 错误配置无效,异常退出(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)
... 2 更多
配置无效,异常退出
请您告诉我如何拥有一个具有三个 docker 且每个 docker 位于一个物理节点上的 Kafka 集群?
先感谢您。
小智 5
我也遇到过这个。
我认为这个线索在日志中,即
引起原因:java.lang.IllegalArgumentException: org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408)处缺少/tmp/zookeeper/data/myid文件
文件中的以下几行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
Run Code Online (Sandbox Code Playgroud)
当其中一台 Zookeeper 服务器启动时,它通过查看myid自己的数据目录中的文件(在本例中为/tmp/zookeeper/data.
因此,您所需要做的就是myid在每个服务器的上述目录中创建一个名称相同的文件,然后写入 x =或1(这些对应于Zookeeper.properties 文件中的 server. )。23x
参考链接 - Apache Zookeeper。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5217 次 |
| 最近记录: |