1.下载安装包,看好自己下载的目录,别找不到了
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2.创建目录zookeeper目录
mkdir /usr/local/src/zookeeper
3.解压到创建好的目录
进入安装目录
cd /usr/local/src/zookeeper
tar zxvf /download/zookeeper-3.4.9.tar.gz
进入到zookeeper目录,修改文件夹名称
mv zookeeper-3.4.9 zookeeper01
4.配置zookeeper相关的环境变量
没有JDK环境自行安装吧,集群搭建,可以多个虚拟机多个zookeeper,也可以单个虚拟机多个zookeeper
这里我就单个虚拟机部署多个zookeeper了
vim /etc/profile
加入下面内容,目录根据自己的zookeeper目录进行调整
zookeeper的环境变量可以不配置,到时候进入bin目录执行就是了
#JDK和zookeeper环境变量
export JAVA_HOME=/usr/local/src/JDK/jdk1.8.0_05
export ZOOKEEPER_HOME=/usr/local/src/zookeeper/zookeeper01
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5.创建数据目录和日志目录
进入zookeeper01
cd zookeeper01
数据目录
mkdir data
日志目录
mkdir logs
6.进入到zookeeper的conf目录下,将zoo_sample.cfg这个文件复制为zoo.cfg(必须是这个文件)
cd /usr/local/src/zookeeper/zookeeper01/conf
重命名
mv zoo_sample.cfg zoo.cfg
7.修改zoo.cfg文件内容
这是集群配置,注意这些配置有的是修改,有的是新添加
#修改数据路径
dataDir=/usr/local/src/zookeeper/zookeeper01/data
#日志
dataLogDir=/usr/local/src/zookeeper/zookeeper01/logs
#监听所有端口
quorumListenOnAllIPs=true
#修改三台机器zookeeper集群
server.zk的节点=自己虚拟机的ip:zk间的投票选举:zk间的数据同步
server.1=192.168.10.4:2888:3888
server.2=192.168.10.5:2888:3888
这是我的实际配置
# 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=/usr/local/src/zookeeper/zookeeper01/data
dataLogDir=/usr/local/src/zookeeper/zookeeper01/logs
# the port at which the clients will connect
clientPort=2181
# 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
#监听所有端口
quorumListenOnAllIPs=true
#修改一台机器三个zookeeper集群
server.0=192.168.201.128:2888:3888
server.1=192.168.201.128:4888:5888
server.2=192.168.201.128:6888:7888
8.在data目录下新建文件myid
创建
touch myid
在myid文件中指定zookeeper属于哪个节点
echo 0 > myid
查看结果
cat myid
9.复制zookeeper01为zookeeper02
回到zookeeper目录
cd /usr/local/src/zookeeper
复制
cp -r zookeeper01/ zookeeper02
10.修改zoo.cfg配置文件
cd zookeeper02/conf
vi zoo.cfg
11.修改myid文件
进入zookeeper02的data目录
cd /usr/local/src/zookeeper/zookeeper02/data/
echo 1 > myid
查看结果
cat myid
12.复制zookeeper01为zookeeper03
重复步骤9至步骤11,修改相应的参数就可以了
13.修改完成以后,依次进入zookeeper01/zookeeper02/zookeeper03下的bin目录
启动,执行命令
sh zkServer.sh start
14.查看相应端口下的进程
netstat -nltp | grep 2181
15.查看zookeeper集群状态
分别进入zookeeper01/02/03目录bin目录下
sh zkServer.sh status
follwers:追随者
leader:领导者
通常来说,集群中第一个启动的服务,都会成为leader。
16.验证集群效果
zookeeper提供了cli工具,可以完成基本的操作,只需要输入简单的命令即可。
工具是:bin目录下的zkCli.sh
- 在其中的一台服务,创建一个节点:test01
- 然后在其他两台服务中查看是否存在新创建的节点
sh zkCli.sh
ls /
只有zookeeper
创建test01节点
create /test01 456
再次查看
ls /
发现多了一个test01 节点
转到集群中的其他服务,使用zkCli工具查看该节点是否存在。
cd /usr/local/src/zookeeper/zookeeper02/bin
sh zkCli.sh
ls /
发现其他zookeeper节点也有了,搭建成功,集群中的各个服务保证了数据一致性!