zookeeper启动成功后自动关闭。日志报错Unable to access datadir, exiting abnormally
前提:在集群上有master,slave1,slave2三台机器。zookeeper已经搭建好并且能启动。安装配置参考:zookeeper安装配置
然后找到了一篇文章,链接如下:ZooKeeper报错:Unable to access datadir, exiting abnormally
博主说要在zookeeper的data路径下创建目录version-2即有:
****XXX/zookeeper/data/version-2。但是我发现我有这个路径,于是我就到XXX/zookeeper/data下把我的version-2删除了,重新启动。于是启动成功,而且zookeeper没有自动关闭。
ZooKeeper报错:Unable to access datadir, exiting abnormally
如日志所说,在执行清除文件的时候,Zookeeper发现当前节点上缺少snap directory(临时目录),即缺少/data/zookeeper/data/version-2,并且在Zookeeper尝试自动创建此目录时也失败了 ( zookeeper.datadir.autocreate 是flase) ,最终导致了exiting abnormally(异常退出)。
Zookeeper需要你手动创建此文件夹
————————————————
问题解决
上面的日志,换句话说就是,既没有version-2目录,又被设置为不能自动创建。那么,我们便可以有以下两种方法:
方法一:以Zookeeper的角色,手动创建目录version-2,再重启此节点上的Zookeeper,配置不变。如下:
yeluo@slave2:~$ sudo -u zoopeeper mkdir /data/zookeeper/data/version-2
————————————————
这里以123.*为例说明下,之所以使用sudo -u zoopeeper,是要让文件夹的归属者和创建者均是zookeeper。
(如果你不是使用sudo -u zoopeeper切换到zookeeper去创建,那么文件夹的归属是root,后面写数据可能出现权限问题。如果觉得麻烦,那么可以直接采用方法二)。
方法二:设置自动创建目录version-2,然后重启此结点的Zookeeper Server即可如下:
勾选Enable auto-creation of data directories。