安装步骤:
预备
首先准备三台linux服务器(需要提前在腾讯云和阿里云的web控制台关闭防火墙或设置规则开放所需要的端口)
服务器地址
阿里云
120.79.174.149
内网ip 172.16.43.157
腾讯云
119.29.230.153
内网ip 172.16.0.13
腾讯云2
139.199.160.154
内网ip 172.16.0.6
然后为每台服务器安装JDK
1.安装JDK
yum list java*
yum -y install java-1.8.0-openjdk*
2.下载Zookeeper
安装目录选在/opt下
在/opt目录下在运行命令
mkdir zookeeper #项目目录
mkdir zkdata #存放快照日志
mkdir zkdatalog #存放事物日志
#下载软件
cd /opt/zookeeper/
wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz
#解压软件
tar -zxvf zookeeper-3.5.6-beta.tar.gz
3.配置
进入zookeeper安装目录下
删掉不必要的txt和xml文件
rm -rf *.xml *.txt
进入conf目录
将zoo_sample.cfg 重命名为zoo.cfg
mv zoo_sample.cfg zoo.cfg
使用vi修改zoo.cfg的配置项(假设将阿里云server命名为1,腾讯云server命名为2,腾讯云2命名为3)
则配置如下
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
# the port at which the clients will connect
clientPort=12181
server.1=172.16.43.157:2888:3888(server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里(即zkdata目录)
本机配置将此ip修改为内网ip地址,后面的第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888)
server.2=119.29.230.153:2888:3888
server.3=139.199.160.154:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
~
4.创建myid文件
在各个sever上运行如下命令,echo后面的数字改成各自对应的
echo 1 > /opt/zookeeper/zkdata/myid
5.启动
在zookeeper的bin目录下执行 zkServer.sh start
或在任意目录运行/opt/zookeeper/zookeeper-3.5.4-beta/bin/zkServer.sh start
6.状态查看
/opt/zookeeper/zookeeper-3.5.4-beta/bin/zkServer.sh status只有显示如下状态时,才表示zookeeper启动成功。
验证zookeeper集群高可用性:
当关闭三台主机中的leader后,zookeeper会执行选举,重新选出一台走位leader服务器,再次启动那台被关闭的leader,则此服务器变为follower