一 linux环境配置
虚拟机总共三台机器,ip分别是192.168.1.11,192.168.1.12,192.168.1.13
1.防火墙配置
关闭防火墙:systemctl stop firewalld.service
禁止防火墙自动启动:systemctl disable firewalld.service
2.安全配置
关闭selinux : setenforce 0
禁止selinux启动:vim /etc/selinux/config
SELINUX=disabled
3.配置host
vim /etc/hosts
192.168.1.11 node01
192.168.1.12 node02
192.168.1.13 node03
二 zookeeper安装
1.下载zookeeper
下载apache-zookeeper-3.5.5-bin.tar.gz并上传到三台虚拟机的/software下
2.解压apache-zookeeper-3.5.5-bin.tar.gz 并重命名
tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /software/
mv apache-zookeeper-3.5.5-bin zookeeper
3.配置
3.1在zookeeper目录下创建data和logs两个目录用于存储数据和日志:
mkdir -p /software/zookeeper/{data,logs}
3.2配置环境变量 , 修改/etc/profile 文件
vim /etc/profile
export ZOOKEEPER_HOME=/software/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile
3.3 配置zoo.cfg
创建zoo.cfg 并修改权限
touch /software/zookeeper/conf/zoo.cfg
chmod 777 /software/zookeeper/conf/zoo.cfg
在zoo.cfg增加以下配置
tickTime=2000
dataDir=/software/zookeeper/data
dataLogDir=/software/zookeeper/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
zookeeper.admin.serverPort=8081
zoo.cfg详解:
tickTime: 基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。
dataDir: 存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort: 这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit: 这个配置项是用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,
当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,
那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
syncLimit: 这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,
最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
server.A = B:C:D
A表示这个是第几号服务器,
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader
3.4服务器标识配置
在zookeeper的data目录下创建myid文件,并填写数字作为服务器的标识,不同机器的myid必须不同
192.168.1.11上配置
echo '1' > /software/zookeeper/data/myid
192.168.1.12上配置
echo '2' > /software/zookeeper/data/myid
192.168.1.13上配置
echo '3' > /software/zookeeper/data/myid
4.启动zookeeper集群
在三台机器上分别运行
zkServer.sh start
5.验证集群是否成功启动
5.1查看zookeeper的状态
zkServer.sh status
5.2数据测试
通过zookeeper客户端连接其中一台,并写入数据
zkCli.sh -server node02:2181
create /username tom
然后连接另一台,并查看有没有刚才插入的数据
zkCli.sh -server node03:2181
get /username
上图说明zookeeper集群模式部署成功