centos7 离线安装zookeeper集群
ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
防止单点故障:ZooKeeper群架通常有2n+1台Server组成,每台Server都知道彼此的存在。对于2n+1台Server,只要有n+1(即一般以上)Server可用,整个集群就保持可用。当然,单个ZooKeeper也可以搭建,只是没有了高可用的特性。
本次安装3台虚拟机测试
1、安装jdk
#解压文件到/usr/local
#tar -zxvf jdk-8u131-linux-x64.gz -C /usr/local
#修改环境变量
#vi /etc/profile
在文件末尾加上下边内容:
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_131
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
#生效
#source /etc/profile
2、安装zookeeper
下载地址:http://archive.apache.org/dist/zookeeper/
本次测试安装:apache-zookeeper-3.8.0-bin.tar.gz
创建数据和日志目录
#mkdir -p /home/zookeeper/data
#mkdir -p /home/zookeeper/data
#解压文件到/usr/local
#tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/
#编辑配置文件
#cd /usr/local/apache-zookeeper-3.8.0-bin/conf/
#cp zoo_sample.cfg zoo.cfg
#备份 zoo_sample.cfg为 zoo_sample.cfg.bak,不能用两个cfg文件,否则启动失败
#mv zoo_sample.cfg zoo_sample.cfg.bak
#vi zoo.cfg
主要信息:
tickTime=2000
initLimit=10
syncLimit=5
#数据目录和日志目录,这个要提前创建 zookeeper不会帮创建的,不创建会报错
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
# 客户端口,建议修改,不使用默认
clientPort=2181
#server 集群地址
server.1=192.168.59.102:2888:3888
server.2=192.168.59.103:2888:3888
server.3=192.168.59.104:2888:3888
创建myid
#进入配置好的数据文件目录
#cd /home/zookeeper/data
#创建
#echo 1 > myid
myid文件中只有一个数字,即一个Server ID。例如,server.1 的myid文件内容就是“1”。
注意,请确保每个server的myid文件中id数字不同,并且和server.id=host:port:port中的id一致。id的范围是1~255
以上是第一个服务器的安装,再另外安装2台
重复以上步骤,只有myid文件不一样
#echo 2 > myid
#echo 3 > myid
3、验证:
3台虚拟机安装之后
启动服务:
注意开放防火墙端口,因为是自己的虚拟机 直接关闭防火墙
#/usr/local/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
102:
103:
104:
4、测试
关闭103的服务
102还是follower:
104成为新的leader: