ZooKeeper做三节点集群,启动后报错如下:
[root@storm1 conf]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /my/servers/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
[root@storm1 conf]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /my/servers/zookeeper-3.4.10/bin/…/conf/zoo.cfg
Error contacting service. It is probably not running.
于是开始网上查找解决方案:
一、关闭防火墙
servcie iptables stop --临时关闭防火墙
chkconfig iptables off --永久关闭防火墙
二、配置问题
zookeeper_home/conf/zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件。并且指定id,改id为你zoo.cfg文件中server.1=ip:2888:3888中的1.只要在myid头部写入1即可.同理其它两台机器的id对应上。
比如第一台机器cfg文件:
配置相应的myid为:1
三、用户权限问题
切换为root用户启动
尝试了以上方法,仍然不能解决。看到某篇博客下评论说:
zookeeper_home/conf/zoo.cfg配置文件里dataDir指定的文件夹没权限导致,于是使用chmod -R 777 data。然后就可以成功启动了~
- 找到zoo.cfg的dataDir下的文件,然后每次开机给权限
- 最终发现删除zkData下的zookeeper_server.pid可以成功
注意:
1.先删除zkData下的zookeeper_server.pid
2.然后对zkData进行chmod 777
2。 关于hostname修改
hostname映射到IP地址在sur/local/hosts