centos7下安装zookeeper&zookeeper集群的搭建
一、centos7下安装zookeeper
1.zookeeper 下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
2.安装步骤
前提:安装 jdk 和 JAVA_HOME
第一步:解压缩 zookeeper 安装包
[root@VM_0_11_centos ~]# mkdir zookeeper [root@VM_0_11_centos ~]# tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz -C zookeeper/
第二步:进入 zookeeper/apache-zookeeper-3.5.5-bin/conf 目录,修改配置文件把zoo_sample.cfg改名为zoo.cfg
[root@VM_0_11_centos conf]# cp zoo_sample.cfg zoo.cfg
第三步:创建数据文件目录
[root@VM_0_11_centos zookeeper]# mkdir datadir [root@VM_0_11_centos zookeeper]# ls apache-zookeeper-3.5.5-bin datadir
[root@VM_0_11_centos zookeeper]# cd datadir/
[root@VM_0_11_centos datadir]# pwd
/root/zookeeper/datadir
第四步:修改 zoo.cfg 文件
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper/datadir clientPort=2181
保存退出
3.启动
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# ls bin docs LICENSE.txt README.md conf lib NOTICE.txt README_packaging.txt [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
在运行完第一条指令之后,会出现一些错误异常,产生异常信息的原因是由于Zookeeper 服务的每个实例都拥有全局配置信息,他们在启动的时候会随时随地的进行Leader选举操作。此时,第一个启动的Zookeeper需要和另外两个 Zookeeper实例进行通信。但是,另外两个Zookeeper实例还没有启动起来,因此就产生了这的异样信息。我们直接将其忽略即可,待把图中“2 号”和“3号”Zookeeper实例启动起来之后,相应的异常信息自然会消失。
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Client port found: 2181. Client address: localhost. Error contacting service. It is probably not running.
4.查看进程状态
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# jps 9958 Jps 9710 QuorumPeerMain [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
5.启动客户端
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkCli.sh
二、zookeeper 集群的搭建
前言:本次集群是在一台服务器上搭建的在,一台机器上部署了3个 server,需要注意的是在集群为分布式模式下我们使用的每个配置文档模拟一台机器,也就是说单台机器及上运行多个 Zookeeper 实例。但是,必须保证每个配置文档的各个端口号不能冲突,除了 clientPort 不同之外,dataDir 也不同。另外,还要在 dataDir 所对应的目录中创建 myid 文件来指定对应的 Zookeeper 服务器实例。
1.创建必要目录与文件
Zookeeper集群中,每一个节点都需创建data目录、dataLog目录以及myid文件。
1).先创建节点文件
[root@VM_0_11_centos zookeeper]# mkdir server1 [root@VM_0_11_centos zookeeper]# mkdir server2 [root@VM_0_11_centos zookeeper]# mkdir server3
2).创建每个节点所必须的data目录、dataLog目录以及myid文件
[root@VM_0_11_centos zookeeper]# cd server1 [root@VM_0_11_centos server1]# mkdir data [root@VM_0_11_centos server1]# pwd /root/zookeeper/server1 [root@VM_0_11_centos server1]# mkdir dataLog [root@VM_0_11_centos server1]# pwd /root/zookeeper/server1 [root@VM_0_11_centos server1]# cd data [root@VM_0_11_centos data]# echo 1 > myid [root@VM_0_11_centos data]# ls myid [root@VM_0_11_centos data]#
其他的节点文件和这个类似,只是 server1 的 myid 文件里面是1 ,而 server2 的 myid 文件里面是2,而 server3 的 myid 文件里面是3。其值为后续zoo.cfg
中配置的第几号服务器。
2.修改 zoo.cfg 文件
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper/server1/data dataLogDir=/root/zookeeper/server1/dataLog clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890
3.创建 zoo2.cfg 和 zoo3.cfg 文件
[root@VM_0_11_centos conf]# ls configuration.xsl zoo.cfg log4j.properties zoo_sample.cfg [root@VM_0_11_centos conf]# cp zoo.cfg zoo2.cfg [root@VM_0_11_centos conf]# cp zoo.cfg zoo3.cfg [root@VM_0_11_centos conf]# ls configuration.xsl zoo2.cfg zoo.cfg log4j.properties zoo3.cfg zoo_sample.cfg [root@VM_0_11_centos conf]#
4.根据第三步修改 zoo2.cfg 和 zoo3.cfg 配置文件
clientPort=2182
dataDir=/root/zookeeper/server2/data
dataLogDir=/root/zookeeper/server2/dataLog
clientPort=2183
dataDir=/root/zookeeper/server3/data dataLogDir=/root/zookeeper/server3/dataLog
5.启动服务
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo2.cfg ZooKeeper JMX enabled by default Using config: conf/zoo2.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo3.cfg ZooKeeper JMX enabled by default Using config: conf/zoo3.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
6.查看服务的状态
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo3.cfg ZooKeeper JMX enabled by default Using config: conf/zoo3.cfg Client port found: 2183. Client address: localhost. Mode: follower
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Client port found: 2181. Client address: localhost. Mode: follower
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo2.cfg ZooKeeper JMX enabled by default Using config: conf/zoo2.cfg Client port found: 2182. Client address: localhost. Mode: leader //2号节点是 leader 节点 [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#