Zookeeper集群搭建
集群设置
主机3台 已配置好ssh免密,防火墙已关闭
master 192.168.1.101
slave1 192.168.1.102
slave2 192.168.1.103
下载
配置&分发
-
将下载的压缩包上传至master服务器的目录中,我们放在
/home/ubuntu/data/zookeeper
目录下 -
解压,
tar -zxvf zookeeper-3.4.14.tar.gz -C /home/ubuntu/data/zookeeper/
-
修改配置
cd /home/ubuntu/data/zookeeper/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg
-
tickTime
心跳基本时间单位,毫秒级,ZK基本上所有的时间都是这个时间的整数倍。 -
initLimit
tickTime的个数,表示在leader选举结束后,followers与leader同步需要的时间,如果followers比较多或者说leader的数据灰常多时,同步时间相应可能会增加,那么这个值也需要相应增加。当然,这个值也是follower和observer在开始同步leader的数据时的最大等待时间(setSoTimeout) -
syncLimit
tickTime的个数,这时间容易和上面的时间混淆,它也表示follower和observer与leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。 -
dataDir
内存数据库快照存放地址,如果没有指定事务日志存放地址(dataLogDir),默认也是存放在这个路径下,建议两个地址分开存放到不同的设备上。 -
clientPort
配置ZK监听客户端连接的端口 -
dataLogDir
将事务日志存储在该路径下,比较重要,这个日志存储的设备效率会影响ZK的写吞吐量。
-
-
在文件尾端添加
解释:
server.serverid=host:tickpot:electionportserver:固定写法
serverid:每个服务器的指定ID(必须处于1-255之间,必须每一台机器不能重复)
host:主机名
tickpot:心跳通信端口
electionport:选举端口 -
分发
cd /home/ubuntu/data scp -r zookeeper/ root@slave1:$PWD scp -r zookeeper/ root@slave2:$PWD
然后在每个Zookeeper服务器的dataDir 目录下配置serverid
进入配置文件中写的dataDir目录
cd /home/ubuntu/data/zookeeper/zkData
新建文件 myid 文件内容就是当前这台主机的serverid,serverid就是配置文件中服务器id
如:server.1=master:2888:3888 则master 主机的serverid 是 1 则输入如下命令,其他机器以此类推
echo 1 > myid
配置环境变量
每台机器都要配置
进入当前用户目录
cd ~
vim .bashrc
在文件尾端添加如下内容
export ZOOKEEPER_HOME=/home/ubuntu/data/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
保存退出,然后激活
source .bashrc
启动
虽然我们配置了集群,但是还是需要在每一个节点上对其进行启动,停止服务时也是一样
命令
启动:zkServer.sh start
停止:zkServer.sh stop
查看状态:zkServer.sh status