注意:本文基于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说明集群启动成功



