前言
Zookeeper的运行是依赖java和linux的,所以需要在linux环境。
Zookeeper伪集群环境搭建
1. java的安装与配置
在搭建zookeeper环境之前,我们需要先在linux里对java进行配置
小提示:这里会用到wget,如果你的系统里没有,需要先安装一下wget。
(1) 安装wget wget下载地址
在/usr/local目录下创建wget文件夹,然后把下载好的安装包上传到这个文件夹,具体命令如下:
cd /usr/local
mkdir wget
cd wget/
# 把下载好的安装包上传到这里
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
(2) 安装java
cd /usr/local
mkdir java
cd java/
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
tar -zxvf jdk-8u201-linux-x64.tar.gz
# 改个名字
mv jdk1.8.0_201 jdk8
(3) 配置环境变量
vi /etc/profile
# 按i或者insert进入编辑状态 在最后插入
export JAVA_HOME=/usr/local/java/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# ESC :wq或者 shift+zz 保存退出
source /etc/profile 或者 . /etc/profil 更新配置
java -version 查看环境变量是否生效
2. zookeeper伪集群环境搭建
(1) 下载安装zookeeper
在根目录下创建文件夹zookp_cluster,并在zookp_cluster下创建两个子文件夹bin和server_cluster
mkdir /zookp_cluster
mkdir /zookp_cluster/bin
mkdir /zookp_cluster/server_cluster
进入server_cluster文件夹下载zookeeper并解压
cd /zookp_cluster/server_cluster
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.10/apache-zookeeper-3.5.10-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz
这里下载的版本是3.5.10,如果需要其他版本可以在zookeeper官方资源库寻找
zookeeper资源版本库
(2) 集群环境搭建与配置
将之前解压的安装包复制三份,并分别重命名为zookp_01,zookp_02,zookp_03,这样就可以模拟一个拥有三个服务的zookeeper集群环境。
cd /zookp_cluster/server_cluster
mv ./apache-zookeeper-3.5.10-bin zookp_01
cp -r zookp_01/ zookp_02
cp -r zookp_01/ zookp_03
分别在zookp_01,zookp_02,zookp_03文件夹下创建data(用于存放zookeeper的快照数据)以及、data/logs(存放zookeeper的日志)文件夹,然后这三个data文件夹下分别创建名为myid的文件用于配置服务的id,值分别为1、2、3。
cd /zookp_cluster/server_cluster
mkdir ./zookp_01/data
mkdir ./zookp_02/data
mkdir ./zookp_03/data
mkdir ./zookp_01/data/logs
mkdir ./zookp_02/data/logs
mkdir ./zookp_03/data/logs
touch ./zookp_01/data/myid
touch ./zookp_02/data/myid
touch ./zookp_03/data/myid
# 然后使用vi 命令分别修改myid的内容为1,2,3
分别修改zookp_01,zookp_02,zookp_03的配置文件,设置服务端口,集群IP等。
zookp_01的配置,因为这三个服务部署在同一台设备里所以一定不能端口重复,但是在真实的zookeeper集群环境里,每一个zookeeper服务都有一台单独的服务器,所以不必考虑端口的问题。
cd /zookp_cluster/server_cluster/zookp_01/conf
# 修改原本配置文件的名字
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
clientPort=2181
admin.serverPort=8001
dataDir=/zookp_cluster/server_cluster/zookp_01/data
dataLogDir=/zookp_cluster/server_cluster/zookp_01/data/logs
server.1=192.168.135.100:21181:31181
server.2=192.168.135.100:21182:31182
server.3=192.168.135.100:21183:31183
zookp_02的配置
# 将zoo.cfg文件复制两份到zookp_02/conf,zookp_03/conf
cp -r zoo.cfg/ ../zookp_02/conf
cp -r zoo.cfg/ ../zookp_03/conf
# 并修改如下内容
vi ../zookp_02/conf
clientPort=2182
admin.serverPort=8002
dataDir=/zookp_cluster/server_cluster/zookp_02/data
dataLogDir=/zookp_cluster/server_cluster/zookp_02/data/logs
zookp_03的配置
vi ../zookp_03/conf
clientPort=2183
admin.serverPort=8003
dataDir=/zookp_cluster/server_cluster/zookp_03/data
dataLogDir=/zookp_cluster/server_cluster/zookp_03/data/logs
(3) zookp服务的启动停止及查看状态
进入bin目录,分别创建启动,停止,查看服务状态的脚本
编写启动服务脚本 startzp.sh
cd /zookp_cluster/bin
touch startzp.sh
# 内容为
../server_cluster/zookp_01/bin/zkServer.sh start;
../server_cluster/zookp_02/bin/zkServer.sh start;
../server_cluster/zookp_03/bin/zkServer.sh start;
编写停止服务脚本 stopzp.sh
touch stopzp.sh
# 内容为
../server_cluster/zookp_01/bin/zkServer.sh stop;
../server_cluster/zookp_02/bin/zkServer.sh stop;
../server_cluster/zookp_03/bin/zkServer.sh stop;
编写查看服务状态脚本 statuszp.sh
touch statuszp.sh
# 内容为
../server_cluster/zookp_01/bin/zkServer.sh status;
../server_cluster/zookp_02/bin/zkServer.sh status;
../server_cluster/zookp_03/bin/zkServer.sh status;
启动服务并查看状态
sh startzp.sh
看到如下内容则表明服务启动成功,可以在logs文件夹查看启动日志。
[root@localhost bin]# sh startzp.sh
ZooKeeper JMX enabled by default
Using config: ../server_cluster/zookp_01/conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: ../server_cluster/zookp_02/conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: ../server_cluster/zookp_03/conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# sh statuszp.sh
ZooKeeper JMX enabled by default
Using config: /zookp_cluster/server_cluster/zookp_01/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
ZooKeeper JMX enabled by default
Using config: /zookp_cluster/server_cluster/zookp_02/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost. Client SSL: false.
Mode: leader
ZooKeeper JMX enabled by default
Using config: /zookp_cluster/server_cluster/zookp_03/bin/../conf/zoo.cfg
Client port found: 2183. Client address: localhost. Client SSL: false.
Mode: follower
# 使用 sh stopzp.sh 停止服务
(4) 启动zookeeper客户端连接服务器
zookp_01/bin/zkcli.sh 连接本地的zookeeper服务器
zookp_01/bin/zkCli.sh -server ip:port 连接指定的服务器
版权归原作者 笔墨画诗 所有, 如有侵权,请联系我们删除。