apache-zookeeper - zookeeper:myid 文件丢失
问题描述
环境:
苹果系统
动物园管理员3.6.1
问题:
我可以运行独立模式,但是当我启动集群(包括 3 个节点)时,它会引发错误:
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /Volumes/苹果存储盘/zookeeper/zookeeper2181/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:197)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:124)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90)
Caused by: java.lang.IllegalArgumentException: myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.checkValidity(QuorumPeerConfig.java:810)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:681)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:506)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:193)
... 2 more
关键是,我在数据目录中创建了 myid 文件,并且在 myid.xml 中写入了正确的值。
例如:
cd/Volumes/苹果存储盘/zookeeper/zookeeper2181/data
echo "1" > myid
但它仍然会抛出这个错误。我可以确保 myid 文件的位置是正确的
解决方案
只需在 Zookeeper Data Dir 中创建一个具有名称的文件myid
(您可以在 zookeeper 配置文件中检查它的位置)并将该服务器的 id 放入其中。
例如,对于 id 为 1 的服务器,我们可以这样做:
echo "1" > /var/zookeeper/myid
推荐阅读
- azure - 通过 Jenkins 部署 Azure Web 应用
- protractor - 如何在量角器中使用外部函数 .js 文件
- xamarin - 从 ViewModel 通信到 Xamarin MVVM Cross 中的 View
- java - Tess4j - Pdf 到 Tiff 到 tesseract -“警告:无效分辨率 0 dpi。改用 70。”
- ios - 主动编译条件在 TestFlight 中不起作用
- c# - 尝试下载大型 blob 文件
- git - 如何在 Git 中找到向后合并?
- r - 如何在热图上显示我的所有数据
- sql - 无法连接两个 oracle 表
- wxpython - wx.Layout 出于某种原因从面板中“删除”小部件