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】是一个专为Android平台设计的类库,主要功能是读取MP3文件中的ID3标签信息。ID3标签是音乐文件(尤其是MP3)中存储元数据的一种标准,包括艺术家、专辑、歌曲名称、年份等信息。这个类库提供了...
描述中提到“本文件与zk_studio0.9.3配套”,这意味着 zk-bin-3.6.1 是与ZooKeeper Studio 0.9.3版本兼容的。ZooKeeper Studio是一个图形化的客户端,用于管理和监控ZooKeeper集群。用户可以通过它查看、创建、编辑...
1. 端口号不能重复:在ZooKeeper集群中,各个服务器的端口号不能重复,以免导致集群中的服务器无法通信。 2. myid文件唯一:在ZooKeeper集群中,myid文件中的服务器标识符不能重复,以便服务器进行区分。 3. 配置...
编辑每个配置文件,分别启动 zkServer1.cmd、zkServer2.cmd 和 zkServer3.cmd。dataDir 中的 myid,决定了 zkServer.cmd 启动的 Zookeeper 的 IP 和端口。 集群搭建 在启动过程中,已启动的 Zookeeper 会试图连接...
搭建问题遇到的总结几点,便于找查问题 1)检查配置文件是否有...当ZooKeeper服务器实例启动时,它从myid文件读取其id ,然后使用该id从配置文件中读取,查找它应该监听的端口。 第二,myid文件中的整数格式不对,或者
- **监控与诊断**:`zkServer.sh`脚本用于启动、停止、检查状态,`zkCli.sh`提供命令行客户端。 5. **ZK开发指南**:《ZK-devGuide》可能涵盖ZK的基本概念、API详解、实战案例、性能优化及常见问题解决方案等内容...
配置伪集群,你需要在`dataDir`目录下为每个节点创建一个`myid`文件,内容是对应节点的编号(与`server.x`中的x一致)。 接下来,为了实现开机启动,我们需要将Zookeeper服务添加到Windows服务中。可以使用`zk...
ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...
在本例中,我们将myid文件的内容设置为1、2和3,分别对应zookeeper1、zookeeper2和zookeeper3。 三、配置zoo.cfg文件 在每个ZooKeeper节点下,需要配置zoo.cfg文件。zoo.cfg文件中包含了ZooKeeper的配置信息,例如...
3. **创建数据目录**:确保`dataDir`路径存在,并生成初始的myid文件,myid文件内容为当前服务器在集群中的ID,用于标识服务器身份。 ``` mkdir -p /var/lib/zookeeper echo "1" > /var/lib/zookeeper/myid ``` ...
4. 数据文件:`myid`文件标识每个服务器在集群中的身份。 六、安全性 Zookeeper支持简单的ACL(Access Control List)权限控制,可以对节点设置读、写、执行等权限,以保护数据安全。 七、监控与调优 1. `zkServer...
* 在data目录下创建一个myid文件,用于标识Zookeeper集群中的每个服务器。 * myid文件的值可以是任意的数字,但要和server.x中的值对应。 四、集群拷贝 * 使用scp命令将Zookeeper集群拷贝到每个节点上,以便实现...
- 文件权限:确保Zookeeper的配置文件和数据目录具有正确的权限,以免启动时出现错误。 - 进程管理:在关闭Zookeeper实例时,使用`bin/zkServer.sh stop`命令,以确保干净地停止服务。 通过以上步骤,你已经成功...
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...
2. `dataDir`:Zookeeper用来存储快照的数据目录,你需要在这个目录下创建一个名为`myid`的文件,里面写入与当前服务器ID相同的数字。 3. `clientPort`:客户端连接Zookeeper服务器的端口,默认为2181。 接下来是...
【标题】:“zk安装包111111”指的是Zookeeper的一个安装包,其中“111111111111111111”可能是该版本的详细标识或特定的描述信息,但由于实际内容为空,我们无法获取更具体的细节。 【Zookeeper简介】: Zookeeper...
进入每个节点的 bin 目录,输入命令 bin/zkServer.sh start,以启动服务。 四、客户端连接 ZooKeeper 服务 启动 ZooKeeper 服务之后,输入命令 ./zkCli.sh -server 127.0.0.1:2181,以连接到 ZooKeeper 服务。 五...
在每个 ZooKeeper 节点上,创建 myid 文件,并写入各自的编号 1、2、3。 Step 7: 复制 ZooKeeper 到其他服务器 使用 scp 命令将 ZooKeeper 复制到其他服务器上。 Step 8: 修改 myid 在每个 ZooKeeper 节点上,...
myid 文件中指定了每个节点的 ID,例如,kafka1 的 ID 为 1、kafka2 的 ID 为 2、kafka3 的 ID 为 3。 step7:启动 Zookeeper 服务 我们可以使用以下命令来启动 Zookeeper 服务: bin/zkServer.sh start 或者,...
在/usr/local/software/zookeeper-3.4.13/data 目录下,创建文件 myid,并添加内容为 0。注意,服务器标识文件的内容必须与服务器的标识相同。 6. 配置其他服务器 将上述步骤在其他两台服务器上重复。注意,服务器...