虚拟机版本centos7
zookeeper的运行模式有单机模式,伪集群模式,集群模式三种。单个Zookeeper节点是会存在单点故障的,本小节我们搭建一个zk集群。Zookeeper节点部署越多,服务的可靠性越高,通常建议部署奇数个节点,因为zookeeper集群是以宕机个数过半才会让整个集群宕机的。
zookeeper的集群模式下,节点分为leader和follower两种状态,leader负责所有的写操作,follower负责相关的读操作。
此次配置3台zookeeper
首先配置好一台虚拟机,配置好jdk与zookeeper,然后进行克隆
1.配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置网络
将ONBOOT设为 yes
添加网络ip、掩码、网关设置(具体依照自己的虚拟网络编辑器来定)
IPADDR=192.168.10.66
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
2.将jdk与zookeeper的压缩包解压放入/opt
cd /
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz -C /opt
3.配置jdk环境变量和zookeeper的环境变量
vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_171
ZOOKEEPER_HOME=/opt/apache-zookeeper-3.8.2-bin
PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATHsource /etc/profile
4.切换到zookeeper的conf目录(才可以启动zookeeper)
复制出zoo.conf
cp zoo_sample.cfg zoo.conf
5. clone虚拟机,并修改网络配置(修改 IPADDR),下面的操作做完再克隆修改最好
6.配置zoo.conf,在后面添加
dataLogDir=/opt/zookeeper/logs
dataDir=/opt/zookeeper/data
server.1= 192.168.10.66:2888:3888
server.2= 192.168.10.67:2888:3888
server.3= 192.168.10.68:2888:3888
server.1中的1指代第几个节点,2888端口用来辅助这个服务器与集群中的leader服务器做交换信息的端口,3888端口是在leader挂掉时专门用来进行选举leader所用的端口。
7.创建日志和持久化目录
mkdir -p /opt/zookeeper/{logs,data}
8.创建data,myid 用于标识服务器名称
touch myid
echo 1 > myid #表明是1号服务器
cat myid
9.启动zookeeper,先关闭防火墙
#查看防火墙状态
systemctl status firewalld
#禁用或关闭防火墙(我这里直接禁用)systemctl disable firewalld
10.启动zookeeper服务
#启动
zkServer.sh start
#关闭
zkServer.sh stop
#查看状态
zkServer.sh status
查看状态时发现启动不成功!!!
关闭防火墙 启动三台服务器
启动成功!!