`

myid文件缺失导致zk无法启动(myid file is missing)

zk 
阅读更多

myid文件缺失

现象 :zookeeper无法启动;

异常 :$dataDir/myid file is missing;

原因 :zk集群中的节点需要获取myid文件内容来标识该节点,缺失则无法启动;

解决 :在zk数据文件存放目录下(见 $ZK/conf/zoo.cfg,dataDir属性),创建myid文件并写入一个数字用来标识本节点(类似这个节点的身份证)。

#示例节点 dataDir=/home/crxj-coll/zookeeper-3.4.5/data
cd /home/crxj-coll/zookeeper-3.4.5/data
#这个节点准备命名为 第8号节点,新建文件myid并写入数字8
echo '8' > /var/tmp/zookeeper/myid

发现

PO主今天重启了下服务器,突然发现集群都无法工作了。查看zookeeper.out里面的日志输出,发现myid文件没有了。

myid文件用来在zk集群中标识本节点的编号,缺失后将无法启动。

于是着手重建myid文件。先在zoo.cfg中找到dataDir属性,发现数据文件存放与/var/tmp目录下,是的你没有看错,确实将数据文件存放在了/var/tmp目录下。PO主在重启机器之后该临时目录就被自动清除了Orz.

怎么就脑洞大开放到临时目录下,PO主到现在仍百思不得其解。

后面将dataDir转移到zk根目录就略过不表了。

详细异常贴下:

org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /home/crxj-coll/zookeeper-3.4.5/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /var/tmp/zookeeper/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:344)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
... 2 more
Invalid config, exiting abnormally

转载请标明作者和原文链接

ifuteng#gmail.com 2014/8/26

分享到:
评论

相关推荐

    MyID3_for_Android

    【MyID3_for_Android】是一个专为Android平台设计的类库,主要功能是读取MP3文件中的ID3标签信息。ID3标签是音乐文件(尤其是MP3)中存储元数据的一种标准,包括艺术家、专辑、歌曲名称、年份等信息。这个类库提供了...

    zk-bin-3.6.1

    描述中提到“本文件与zk_studio0.9.3配套”,这意味着 zk-bin-3.6.1 是与ZooKeeper Studio 0.9.3版本兼容的。ZooKeeper Studio是一个图形化的客户端,用于管理和监控ZooKeeper集群。用户可以通过它查看、创建、编辑...

    zookeeper集群

    1. 端口号不能重复:在ZooKeeper集群中,各个服务器的端口号不能重复,以免导致集群中的服务器无法通信。 2. myid文件唯一:在ZooKeeper集群中,myid文件中的服务器标识符不能重复,以便服务器进行区分。 3. 配置...

    Zookeeper在windows搭建伪集群

    编辑每个配置文件,分别启动 zkServer1.cmd、zkServer2.cmd 和 zkServer3.cmd。dataDir 中的 myid,决定了 zkServer.cmd 启动的 Zookeeper 的 IP 和端口。 集群搭建 在启动过程中,已启动的 Zookeeper 会试图连接...

    个人搭建遇到zookeeper启动jps没有进程原因

    搭建问题遇到的总结几点,便于找查问题 1)检查配置文件是否有...当ZooKeeper服务器实例启动时,它从myid文件读取其id ,然后使用该id从配置文件中读取,查找它应该监听的端口。 第二,myid文件中的整数格式不对,或者

    ZK 开发下向导ZK的开发说明

    - **监控与诊断**:`zkServer.sh`脚本用于启动、停止、检查状态,`zkCli.sh`提供命令行客户端。 5. **ZK开发指南**:《ZK-devGuide》可能涵盖ZK的基本概念、API详解、实战案例、性能优化及常见问题解决方案等内容...

    windows下配置zk伪集群及加入windows服务

    配置伪集群,你需要在`dataDir`目录下为每个节点创建一个`myid`文件,内容是对应节点的编号(与`server.x`中的x一致)。 接下来,为了实现开机启动,我们需要将Zookeeper服务添加到Windows服务中。可以使用`zk...

    zookeeper linux集群搭建流程

    ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...

    搭建zookeeper集群

    在本例中,我们将myid文件的内容设置为1、2和3,分别对应zookeeper1、zookeeper2和zookeeper3。 三、配置zoo.cfg文件 在每个ZooKeeper节点下,需要配置zoo.cfg文件。zoo.cfg文件中包含了ZooKeeper的配置信息,例如...

    自动化部署ZK Shell脚本

    3. **创建数据目录**:确保`dataDir`路径存在,并生成初始的myid文件,myid文件内容为当前服务器在集群中的ID,用于标识服务器身份。 ``` mkdir -p /var/lib/zookeeper echo "1" > /var/lib/zookeeper/myid ``` ...

    zk框架开发帮助文档

    4. 数据文件:`myid`文件标识每个服务器在集群中的身份。 六、安全性 Zookeeper支持简单的ACL(Access Control List)权限控制,可以对节点设置读、写、执行等权限,以保护数据安全。 七、监控与调优 1. `zkServer...

    Zookeeper集群部署3.5.5.docx

    * 在data目录下创建一个myid文件,用于标识Zookeeper集群中的每个服务器。 * myid文件的值可以是任意的数字,但要和server.x中的值对应。 四、集群拷贝 * 使用scp命令将Zookeeper集群拷贝到每个节点上,以便实现...

    zkcluster.zip

    - 文件权限:确保Zookeeper的配置文件和数据目录具有正确的权限,以免启动时出现错误。 - 进程管理:在关闭Zookeeper实例时,使用`bin/zkServer.sh stop`命令,以确保干净地停止服务。 通过以上步骤,你已经成功...

    zookeeper伪集群安装流程

    mkdir -pv /home/hadoop/tmp/{zk1/data,zk1/log,zk2/data,zk2/log,zk3/data,zk3/log} ``` 2. **解压缩Zookeeper包**: ```bash tar xf zookeeper-3.4.8.tar.gz ``` 3. **复制解压后的文件到不同目录**: ```bash...

    单机配置(zk、kafka、redis)

    2. `dataDir`:Zookeeper用来存储快照的数据目录,你需要在这个目录下创建一个名为`myid`的文件,里面写入与当前服务器ID相同的数字。 3. `clientPort`:客户端连接Zookeeper服务器的端口,默认为2181。 接下来是...

    zk安装包111111

    【标题】:“zk安装包111111”指的是Zookeeper的一个安装包,其中“111111111111111111”可能是该版本的详细标识或特定的描述信息,但由于实际内容为空,我们无法获取更具体的细节。 【Zookeeper简介】: Zookeeper...

    zookeeper的开发使用技巧和常用命令

    进入每个节点的 bin 目录,输入命令 bin/zkServer.sh start,以启动服务。 四、客户端连接 ZooKeeper 服务 启动 ZooKeeper 服务之后,输入命令 ./zkCli.sh -server 127.0.0.1:2181,以连接到 ZooKeeper 服务。 五...

    zookeeper集群安装

    在每个 ZooKeeper 节点上,创建 myid 文件,并写入各自的编号 1、2、3。 Step 7: 复制 ZooKeeper 到其他服务器 使用 scp 命令将 ZooKeeper 复制到其他服务器上。 Step 8: 修改 myid 在每个 ZooKeeper 节点上,...

    CentOS7搭建Zookeeper集群.docx

    myid 文件中指定了每个节点的 ID,例如,kafka1 的 ID 为 1、kafka2 的 ID 为 2、kafka3 的 ID 为 3。 step7:启动 Zookeeper 服务 我们可以使用以下命令来启动 Zookeeper 服务: bin/zkServer.sh start 或者,...

    CentOs7.4配置zookeeper集群

    在/usr/local/software/zookeeper-3.4.13/data 目录下,创建文件 myid,并添加内容为 0。注意,服务器标识文件的内容必须与服务器的标识相同。 6. 配置其他服务器 将上述步骤在其他两台服务器上重复。注意,服务器...

Global site tag (gtag.js) - Google Analytics