下载zookeeper和jdk
下载地址:
zookeeper : http://mirror.bit.edu.cn/apache/zookeeper/
jdk: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压
解压
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz -C /usr/local/soft
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/soft
创建软连接
建立了一个redis目录的软链接,这样做是为了不把zookeeper目录固定在指定版本上,有利于Zookeeper未来版本升级,算是安装软件的一种好习惯。
创建完软连接相当于windows上面的快捷键,可以直接从/usr/local/jkd 进入到指定目录
ln -s /usr/local/soft/jdk1.8.0_231 /usr/local/jdk
ln -s /usr/local/soft/apache-zookeeper-3.5.6-bin /usr/local/zookeeper
配置环境变量
修改环境变量
vim /etc/profile
在文件最后加入下面内容
#set zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
#set JDK and JRE environment
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=.$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
使配置生效
souce /etc/profile
配置Zookeeper
修改zookeeper配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.conf zoo.conf
vim zoo.conf
修改并加入如下内容
dataDir=/usr/local/zookeeper/data
clientPort=2812
server.0=192.168.31.129:2888:3888
server.1=192.168.31.130:2888:3888
server.2=192.168.31.131:2888:3888
图片说明如下
上面红色框住的内容即是我们修改的内容:
①、tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
②、dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。
③、client:监听客户端连接的端口。
④、initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
⑤、syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
⑥、server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。
我们需要修改的第一个是 dataDir ,在指定的位置处创建好目录。
第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。
创建配置文件所必须的文件
写入服务序号
第一个服务器 192.168.31.129
mkdir /usr/local/zookeeper/data
touch /usr/local/zookeeper/data/myid
vim /usr/local/zookeeper/data/myid
## 输入内容
0
第二个服务器 192.168.31.130
mkdir /usr/local/zookeeper/data
touch /usr/local/zookeeper/data/myid
vim /usr/local/zookeeper/data/myid
## 输入内容
1
。。。以此类推跟配置文件中相匹配
启动 Zookeeper
#启动ZK服务:
zkServer.sh start
#停止ZK服务:
zkServer.sh stop
#重启ZK服务:
zkServer.sh restart
#查看ZK服务状态:
zkServer.sh status
Zookeeper集群需要每台挨个启动。
启动集群的时候,集群数量启动没有超过一半,状态会有错误提示,当集群启动数量超过一半就会自动转为正常状态,并且此台使集群进入正常工作状态的服务器会成为leader角色,集群中其他服务器的角色为fllower。
如果启动有错误到 /usr/local/zookeeper/log文件下查看即可,百度。。。。
启动后