注意:本文基于zk伪集群
localhost,127.0.0.1,本地IP
cat /etc/hosts可以发现,操作系统将localhost 和 127.0.0.1绑定在了一起
localhost和127.0.0.1都可以ping pong的方式来看本地ip/tcp是否正常
localhost 和 127.0.0.1是不经网卡传输,不受网络防火墙和网卡相关的的限制。
本地IP需要通过网络防火墙和网卡的限制,这也就是为什么用localhost 和 127.0.0.1就可以,但是使用本地IP不可以的原因
zk下载
点击此处下载,解压到相应文件夹(此处我采取的措施是mv 换名便于操作,并将其复制三份)
#复制到相应文件夹
cp -r apache-zookeeper-3.6.3-bin ./zookeeper
#换名,便于记忆
mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3.1
#复制两份
cp zookeeper-3.6.3.1 zookeeper-3.6.3.2
cp zookeeper-3.6.3.1 zookeeper-3.6.3.3
#进入zk主目录
cd zookeeper-3.6.3.1
#创建日志文件和数据文件
mkdir data
mkdir log
#将配置文件改名,脚本中文件名是zoo.cfg
cd ../conf
mv zoo_sample.cfg zoo.cfg
此时zk节点目录如下:
ls -l
修改集群的配置文件信息
集群的配置文件信息除dataDir,dataLogDir ,clientPort不同外,其他都相同,具体配置信息请自行查阅相关文档
#zookeeper-3.6.3.1配置文件,即上一步改名的zoo.cfg文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./zookeeper-3.6.3.1/data
dataLogDir=./zookeeper-3.6.3.1/log
clientPort=2181
//注意使用localhost 或者 127.0.0.1,不能使用本地ip地址
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
#zookeeper-3.6.3.2配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./zookeeper-3.6.3.2/data
dataLogDir=./zookeeper-3.6.3.2/log
clientPort=2182
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
#zookeeper-3.6.3.3配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./zookeeper-3.6.3.3/data
dataLogDir=./zookeeper-3.6.3.3/log
clientPort=2183
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
创建myid文件
创建 myid 文件
在了解完其配置文件后,现在来创建每个集群节点的 myid ,我们上面说过,这个 myid 就是 server.1 的这个 1 ,类似的,需要为集群中的每个服务都指定标识,使用 echo 命令进行创建
#利用linux管道实现,具体可查阅linux管道符
# server.1
echo "1" >./zookeeper-3.6.3.1/data/myid
# server.2
echo "2" > ./zookeeper-3.6.3.2/data/myid
# server.3
echo "3" > ./zookeeper-3.6.3.3/data/myid
启动并测试
#每个zk配置都要启动
#进入bin目录
cd ../bin
./zkServer.sh start
检查服务状态
需要注意,当三个zk节点都启动成功时,在检查服务状态,因为配置文件中表明了该集群有三个zk节点。
使用./zkServer.sh status
命令检查服务状态
集群启动成功
Mode: follower
说明集群启动成功