ZooKeeper单机安装
安装目录以 /opt/share/zk 为例
-
新建目录 /opt/share/zk,命令如下:
mkdir -p /opt/share/zk
-
进入 /opt/share/zk 目录,上传 jdk-8u301-linux-x64.tar.gz 文件
-
解压 jdk-8u301-linux-x64.tar.gz 文件,命令如下:
tar -zxvf jdk-8u301-linux-x64.tar.gz
-
修改 java 执行权限 ,命令如下:
chmod u+x jdk1.8.0_301/bin/java*
-
上传 apache-zookeeper-3.6.3-bin.tar.gz 文件
-
解压 apache-zookeeper-3.6.3-bin.tar.gz 文件,命令如下:
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
-
apache-zookeeper-3.6.3-bin/data/ 目录下新建 子目录 snapshot 与 log,命令如下:
mkdir -p /opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot mkdir -p /opt/share/zk/apache-zookeeper-3.6.3-bin/data/log
-
进入 apache-zookeeper-3.6.3-bin/conf 目录,新建 java.env 文件,命令如下:
touch java.env vi java.env
java.env 文件内容如下:
#!/bin/sh #配置JDK目录 export JAVA_HOME=/opt/share/zk/jdk1.8.0_301 #配置JVM参数 export JVMFLAGS="-Xms1024m -Xmx1024m $JVMFLAGS"
修改 java.env 文件执行权限
chmod u+x java.env
-
拷贝配置文件 zoo_sample.cfg 为 zoo.cfg,命令如下:
cd apache-zookeeper-3.6.3-bin/conf cp zoo_sample.cfg zoo.cfg
-
修改 zoo.cfg 配置文件,命令如下:
vi zoo.cfg
以下为修改配置
#与客户端通信端口 clientPort=2181 #快照存储目录。修改位置:第12行 dataDir=/opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot # 开启(把注释去掉),保留快照的个数,修改位置:第25行 autopurge.snapRetainCount=10 # 开启(把注释去掉),自动清理事务日志和快照文件的功能,单位是小时,默认是0,表示不开启自动清理功能。修改位置:第28行 autopurge.purgeInterval=24
以下为新增配置,在文件末尾新增以下配置
#事务日志存储目录 dataLogDir=/opt/share/zk/apache-zookeeper-3.6.3-bin/data/log #HTTP方式查看服务信息 admin.serverPort=8081 #开启审核日志 audit.enable=true
2181对客户端开放
开放端口命令如下:
# 开放2181端口 firewall-cmd --zone=public --add-port=2181/tcp --permanent # 重新加载防火墙规则 firewall-cmd --reload
-
进入 /opt/share/zk/apache-zookeeper-3.6.3-bin/bin 目录,启动ZooKeeper
cd ../bin ./zkServer.sh start
如果打印以下信息,则表示启动成功
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED -
根据端口查看进程,命令如下:
netstat -anp | grep 2181
打印以下信息
tcp6 0 0 :::2181 ::😗 LISTEN 3538/java
-
如果需要关闭,可以用以下命令:
./zkServer.sh stop
正常打印信息如下:
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Stopping zookeeper … STOPPED
ZooKeeper 集群安装
安装目录以 /opt/share/zk 为例
ZooKeeper 集群推荐安装奇数台,现以搭建 3 台机器为例。
三台机器如下:
- 192.168.1.100
- 192.168.1.101
- 192.168.1.102
以 192.168.1.100 机器为例,安装步骤如下:
-
新建目录 /opt/share/zk,命令如下:
mkdir -p /opt/share/zk
-
进入 /opt/share/zk 目录,上传 jdk-8u301-linux-x64.tar.gz 文件
-
解压 jdk-8u301-linux-x64.tar.gz 文件,命令如下:
tar -zxvf jdk-8u301-linux-x64.tar.gz
-
修改 java 执行权限 ,命令如下:
chmod u+x jdk1.8.0_301/bin/java*
-
上传 apache-zookeeper-3.6.3-bin.tar.gz 文件
-
解压 apache-zookeeper-3.6.3-bin.tar.gz 文件,命令如下:
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
-
/opt/share/zk/apache-zookeeper-3.6.3-bin/data/ 目录下新建 子目录 snapshot 与 log,命令如下:
mkdir -p /opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot mkdir -p /opt/share/zk/apache-zookeeper-3.6.3-bin/data/log
-
进入 /opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot目录,创建 myid 文件,命令如下:
cd /opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot echo "1" > myid
依次在每台机器 /opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot 目录下创建 myid 文件:
192.168.1.101 机器 myid 文件内容为 2,命令如下:
echo "2" > myid
192.168.1.102 机器 myid 文件内容为 3,命令如下:
echo "3" > myid
-
进入 /opt/share/zk/apache-zookeeper-3.6.3-bin/conf 目录,新建 java.env 文件,命令如下:
touch java.env vi java.env
java.env 文件内容如下:
#!/bin/sh #配置JDK目录 export JAVA_HOME=/opt/share/zk/jdk1.8.0_301 #配置JVM参数 export JVMFLAGS="-Xms1024m -Xmx1024m $JVMFLAGS"
修改 java.env 文件执行权限
chmod u+x java.env
-
拷贝配置文件 zoo_sample.cfg 为 zoo.cfg,命令如下:
cd apache-zookeeper-3.6.3-bin/conf cp zoo_sample.cfg zoo.cfg
-
修改 zoo.cfg 配置文件,命令如下:
vi zoo.cfg
以下为修改配置
#与客户端通信端口 clientPort=2181 #快照存储目录。修改位置:第12行 dataDir=/opt/share/zk/apache-zookeeper-3.6.3-bin/data/snapshot # 开启(把注释去掉),保留快照的个数,修改位置:第25行 autopurge.snapRetainCount=10 # 开启(把注释去掉),自动清理事务日志和快照文件的功能,单位是小时,默认是0,表示不开启自动清理功能。修改位置:第28行 autopurge.purgeInterval=24
以下为新增配置,在文件末尾新增以下配置
#事务日志存储目录 dataLogDir=/opt/share/zk/apache-zookeeper-3.6.3-bin/data/log #HTTP方式查看服务信息 admin.serverPort=8081 #开启审核日志 audit.enable=true #集群节点配置 server.1=192.168.1.100:2888:3888 server.2=192.168.1.101:2888:3888 server.3=192.168.1.102:2888:3888
注意,需要保证端口2888、3888在三台机器之间互通,保证端口2181对客户端开放
开放端口命令如下:
# 开放2181端口 firewall-cmd --zone=public --add-port=2181/tcp --permanent firewall-cmd --zone=public --add-port=2888/tcp --permanent firewall-cmd --zone=public --add-port=3888/tcp --permanent # 重新加载防火墙规则 firewall-cmd --reload
依次修改每台机器 zoo.cfg 配置文件,内容一样。
配置格式说明如下:
server.A=B:C:D
A:ZooKeeper 服务器的序号,这个序号要与 ZooKeeper 的 myid 内容保持一致
B:服务器的 IP 地址或者域名
C:服务器 Follower 与集群中的 Leader 服务器通信端口
D:Leader 选举端口。
-
192.168.1.101、192.168.1.102 机器上分别按如上1~11步骤安装配置,注意第8步骤,myid值修改
-
依次进入每台机器 /opt/share/zk/apache-zookeeper-3.6.3-bin/bin 目录,启动 ZooKeeper
cd /opt/share/zk/apache-zookeeper-3.6.3-bin/bin ./zkServer.sh start
如果打印以下信息,则表示启动成功
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED -
验证集群状态,命令如下:
./zkServer.sh status
如果打印以下信息,则表示该台节点为Leader
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader如果打印以下信息,则表示该台节点为follower
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower -
根据端口查看进程,命令如下:
netstat -anp | grep 2181
打印以下信息
tcp6 0 0 :::2181 ::😗 LISTEN 3538/java
-
如果需要关闭,可以用以下命令:
./zkServer.sh stop
正常打印信息如下:
ZooKeeper JMX enabled by default
Using config: /opt/share/zk/apache-zookeeper-3.6.3-bin/bin/…/conf/zoo.cfg
Stopping zookeeper … STOPPED