一、zookeeper下载安装
准备三台主机,比如:ip1,ip2,ip3
1、下载zookeeper,自己上官网找最新的版本下载。
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
下载好之后,可以使用scp拷贝到其他主机
scp -r apache-zookeeper-3.6.0-bin.tar.gz root@ip2:/root
然后输入ip2的密码即可
2、解压
tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz
3、自己找个zk_home,比如/usr/local/zookeeper
cp -r apache-zookeeper-3.6.0-bin /usr/local/zookeeper
cd /usr/local/zookeeper
4、复制并修改zk配置文件
在第一台主机
cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg
修改dataDir,添加zk集群
dataDir=/usr/local/zookeeper/data
server.1=0.0.0.0:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888
在第二台主机
dataDir=/usr/local/zookeeper/data
server.1=ip1:2888:3888
server.2=0.0.0.0:2888:3888
server.3=ip3:2888:3888
在第三台主机
dataDir=/usr/local/zookeeper/data
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=0.0.0.0:2888:3888
5、创建myid,注意myid是与zoo.cfg中server.x的x对应的。
在第一台主机
mkdir data
echo "1" > data/myid
在第二台主机
mkdir data
echo "2" > data/myid
在第三台主机
mkdir data
echo "3" > data/myid
6、启动zk服务
bin/zkServer.sh start
查看状况
bin/zkServer.sh status
停止服务
bin/zkServer.sh stop
二、启动不成功,怎么办?
It is probably not running.
先停止zk,以foreground模式重启zk,查看打印出来的异常提示(亦可查看日志,tail -f -n 30 logs/xxx.log)
bin/zkServer.sh start-foreground
常见异常有:
出现以上问题都别慌,还记得我们在zoo.cfg修改了什么吗?
- dataDir=/usr/local/zookeeper/data
- clientPort=2181
- server.1=0.0.0.0:2888:3888
- server.2=ip2:2888:3888
- server.3=ip3:2888:3888
还有个myid。所以确保2181,2888端口未被占用,myid对应server.x中的x,
集群模式下用0.0.0.0表示本机,伪集群都用localhost,基本可解决90%的此类问题,
还有一些特别情况,这里不做展开,自己理解的也并不深刻。