Java环境安装
- 搜索安装包
yum -y list java-11* - 安装jdk11
yum -y install java-11* - 查看当前版本
java -version - 配置环境变量
- 编辑配置文件:
vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.10.0.9-0.el7_9.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin - 刷新配置到内存,使其生效:
source /etc/profile - 测试是否生效:
echo $JAVA_HOME
- 编辑配置文件:
Zookeeper的安装
- 下载
bin压缩包:wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6-bin.tar.gz - 解压:
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz - 移动到指定文件并重命名目录:
mv apache-zookeeper-3.5.6-bin/ /opt/zookeeper - 配置环境变量:
- 编辑配置文件:
vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.10.0.9-0.el7_9.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ZOOKEEPER_HOME=/opt/zookeeper export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin - 刷新配置到内存,使其生效:
source /etc/profile - 测试是否生效:
echo $ZOOKEEPER_HOME
- 编辑配置文件:
单机模式
- 配置文件:
- 切换到指定目录:
cd /opt/zookeeper/conf/ - 拷贝一份配置文件,一定得命名为
zoo.cfg:cp zoo_sample.cfg zoo.cfg
- 切换到指定目录:
- 启动服务:
zkServer.sh start - 验证服务:
- 使用
telnet与stat两个命令验证服务是否正常-
yum install telnettelnet 127.0.0.1 2181 输入 stat -
解决白名单问题:- 打开
vim /opt/zookeeper/bin/zkServer.sh并添加一行代码:ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"
zkServer.sh restart重启服务:- 再次验证服务:
- 打开
-
- 使用
配置文件
# The number of milliseconds of each tick
# Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# 配置持久化的文件目录
dataDir=/var/zookeeper
# 配置日志文件目录
dataLogDir=/opt/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
集群模式
- 配置文件调整:
- 配置文件底部增加
# 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口) server.1=node01:2888:3888 server.2=node02:2888:3888 server.3=node03:2888:3888 server.4=node04:2888:3888 - 在
/var/zookeeper目录下增加myid文件,内容如下:1
- 配置文件底部增加
- 前台阻塞启动服务:
zkServer.sh start-foreground- node01先启动,观察现象:报错,但是并未退出
- node02第二个启动,LOOKING状态
- node03第三个启动,leader产生,node01,node02也随之running起来了
- node03挂掉,node04选举出leader
- cZxid在每一个session连接的时候也算了一次
- node01先启动,观察现象:报错,但是并未退出