配置和启动Zookeeper主要分为以下三步
1.创建zoo.cfg
在Zookeeper的conf文件夹下复制zoo_sample.cfg,改名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
vi zoo.cfg
修改dataDir和添加服务器列表(配置好hosts)
dataDir=/opt/zookeeper
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
2.创建文件夹
sudo mkdir /opt/zookeeper
在不同的服务器创建不同的myid
在master上创建
echo 1 >>/opt/zookeeper/myid
在slave1上创建
echo 2 >>/opt/zookeeper/myid
在slave2上创建
echo 3 >>/opt/zookeeper/myid
3.启动Zookeeper
在不同服务器上Zookeeper的bin目录下运行该命令
./zkServer.sh start
然后查看Zookeeper运行状态时发现并没有在启动
./zkServer.sh status
终端输出
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
查看日志发现
Cannot open channel to 3 at election address
查看Stack Overflow后有种解决办法是在不同的服务器上把Zookeeper中的配置文件中指向自己的那个host改为0.0.0.0
如master上就改为
server.1=0.0.0.0:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
slave1和slave2的配置文件也是这样改,启动后发现启动成功了