Zookeeper安装
在一台机器上模拟3个 zk server的集群安装 准备内容: zookeeper-3.4.8.tar.gz
1.上传安装文件
# mkdir /opt/zookeeper-1 /opt/zookeeper-2 /opt/zookeeper-3
# cd /home
# rz
# cp /home/zookeeper-3.4.8.tar.gz /opt/zookeeper-1
# cp /home/zookeeper-3.4.8.tar.gz /opt/zookeeper-2
# cp /home/zookeeper-3.4.8.tar.gz /opt/zookeeper-3
2.安装文件
# tar zxvf /opt/zookeeper-1/zookeeper-3.4.8.tar.gz -C /opt/zookeeper-1
# tar zxvf /opt/zookeeper-2/zookeeper-3.4.8.tar.gz -C /opt/zookeeper-2
# tar zxvf /opt/zookeeper-3/zookeeper-3.4.8.tar.gz -C /opt/zookeeper-3
3.配置
每个zk的instance,都需要设置独立的数据存储目录、日志存储目录
编辑zookeeper-1的配置文件
# cd /opt/zookeeper-1/zookeeper-3.4.8/conf/
# cp zoo_sample.cfg zoo.cfg
创建数据和日志文件夹
# mkdir /opt/zookeeper-1/data /opt/zookeeper-1/logs
编辑zoo.cfg文件
# vim /opt/zookeeper-1/zookeeper-3.4.8/conf/zoo.cfg
### 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-1/data
### the log directory
dataLogDir=/opt/zookeeper-1/logs
### the port at which the clients will connect
clientPort=2181
###
server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
### the maximum number of client connections. increase this if you need to handle more clients
#maxClientCnxns=60
# :wq!
同理,编辑zookeeper-2,zookeeper-3的配置文件
# mkdir /opt/zookeeper-2/data /opt/zookeeper-2/logs
# cp /opt/zookeeper-2/zookeeper-3.4.8/conf/zoo_sample.cfg /opt/zookeeper-2/zookeeper-3.4.8/conf/zoo.cfg
# vim /opt/zookeeper-2/zookeeper-3.4.8/conf/zoo.cfg
### the directory where the snapshot is stored. do not use /tmp for storage, /tmp here is just example sakes.
dataDir=/opt/zookeeper-2/data
### the log directory
dataLogDir=/opt/zookeeper-2/logs
### the port at which the clients will connect
clientPort=2182
###
server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
# :wq!
# mkdir /opt/zookeeper-3/data /opt/zookeeper-2/logs
# cp /opt/zookeeper-3/zookeeper-3.4.8/conf/zoo_sample.cfg /opt/zookeeper-3/zookeeper-3.4.8/conf/zoo.cfg
# vim /opt/zookeeper-3/zookeeper-3.4.8/conf/zoo.cfg
### the directory where the snapshot is stored. do not use /tmp for storage, /tmp here is just example sakes.
dataDir=/opt/zookeeper-3/data
### the log directory
dataLogDir=/opt/zookeeper-3/logs
### the port at which the clients will connect
clientPort=2183
###
server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
# :wq!
注意:因为是在一台机器上模拟集群,所以端口不能重复,这里用2181~2183,2287~2289,以及3387~3389相互错开.另外每个zk的instance,都需要设置独立的数据存储目录、日志存储目录,所以dataDir、dataLogDir这二个节点对应的目录,需要手动先创建好
增加myid文件
在每个zk server配置文件的dataDir所对应的目录下,必须创建一个名为myid的文件,其中的内容必须与zoo.cfg中server.x 中的x相同,即:
/opt/zookeeper-1/data/myid 中的内容为1,对应server.1中的1 /opt/zookeeper-2/data/myid 中的内容为2,对应server.2中的2 /opt/zookeeper-3/data/myid 中的内容为3,对应server.3中的3
# vim /opt/zookeeper-1/data/myid
1
:wq!
4.验证
开启zk服务
# /opt/zookeeper-1/zookeeper-3.4.8/bin/zkServer.sh start
# /opt/zookeeper-2/zookeeper-3.4.8/bin/zkServer.sh start
# /opt/zookeeper-3/zookeeper-3.4.8/bin/zkServer.sh start
查看zk进程
# jps
测试zk服务
# ./zkCli.sh -server 127.0.0.1:2181
# ./zkCli.sh -server 127.0.0.1:2182
# ./zkCli.sh -server 127.0.0.1:2183
5.其它
使用zookeeper时,需要开放2181端口
# firewall-cmd --zone=public --remove-port=2181/tcp --permanent
# firewall-cmd --reload