0


zookeeper集群部署(centos7.6,zookeeper版本3.7.2)

部署前准备

1.准备三台虚拟机,配置好固定ip

2.下载zookeeper:zookeeper国内下载地址:

apache-zookeeper安装包下载_开源镜像站-阿里云 (aliyun.com)

下载的时候选择带有bin的下载包没有带bin的是没有编译的我们直接选择编译好的包进行安装)

下载命令:

wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.7.2/apache-zookeeper-3.7.2-bin.tar.gz

3.关闭防火墙:

暂时关闭:

systemctl stop firewalld

永久关闭:

systemctl disable firewalld --now

关闭之后查看防火墙状态:

 systemctl status firewalld

4.关闭seLinux防火墙

vi /etc/sysconfig/selinux

修改SELINUX=disabled

5.修改hosts文件:添加集群中所以节点的ip和主机名

将我们的三台机器的ip和对应的主机名添加到hosts文件中

开始部署:(下列步骤全部在node01上进行)

1.将下载的包上进行解压,创建目录和文件:

根据个人习惯选择解压之后的路径,我解压到/usr/local/下,解压之后进入解压后的目录:

这是解压后的目录结构

解压后为了方便将目录名重命名为zookeeper-3.7.2

然后进入解压后的目录创建一个数据目录zkdata(这个后面修改配置文件的时候需要这个路径)

然后进入这个zkdata目录再创建一个myid文件:

vim myid

然后编辑内容为:

就是很简单的一个编号1,是这个节点在整个集群中的唯一标识

2.修改配置文件:

2.1安装完成之后添加环境变量:

编辑/etc/profile文件:

vim /etc/profile

添加下列行:

export ZK_HOME=//usr/local/zookeeper-3.7.2
export PATH=$PATH:$ZK_HOME/bin

编辑完成之后保存退出然后:

source /etc/profile

2.2修改/conf/zoo_sample.cfg配置文件:

将现有的zoo_sample.cfg复制一份命名为zoo.cfg:

cp zoo_sample.cfg zoo.cfg

然后对zoo.cfg的内容进行编辑:

vim zoo.cfg

将上述配置文件中的额dataDir修i改为我们在步骤1中创建的数据目录(创建的zkdata目录的路径):

并添加所有节点的相关信息:

然后针对其他的节点,重先上述步骤即可,只需要将myid文件中的内容修改即可

全部完成之后,集群搭建完成:

3.集群测试:

进入到bin目录下,启动zookeeper

启动zookeeper:

./zkServer.sh start

快捷启动脚本:

#!/bin/bash

case $1 in
"start")
  for i in node01 node02 node03
  do
    echo "****************** $i *********************"
    ssh $i "source /etc/profile && /usr/local/zookeeper-3.7.2/bin/zkServer.sh start"
  done
  ;;

"stop")
  for i in node01 node02 node03
  do
    echo "****************** $i *********************"
    ssh $i "/usr/local/zookeeper-3.7.2/bin/zkServer.sh stop"
  done
  ;;

*)
  echo "Usage: $0 {start|stop}"
  exit 1
  ;;
esac

效果演示:

使用jps可以查看当前进行的守护进程:

上面QuorumPeerMain就是zookeeper的守护进程

三台节点全部启动之后再分别查看状态,因为集群所有节点起来之后要进行master选举,还没有全部启动可能会看到standalone的状态

查看启动状态:

./zkServer.sh status

正常启动的话可以看到两台节点状态为follow,一台为leader (如下图)

关闭zookeeper:

./zkServer.sh stop

4.报错解决:

4.1 Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

对于这样的报错是没有安装带bin的包,你下载安装的是没有进行编译的包缺少很多东西是不能直接使用的,解决方法就是下载名字带bin的包

4.2 端口被占用或者地址正在使用:

对于centos7.6的系统,可以通过一下步骤释放端口进行解决:

ss -tlnp | grep 你想要释放的端口号

以释放2181端口为例:

可以看到pid进程号:

然后杀死该进程:

kill -9 pid

然后使用命令产看是否释放成功(下列命令显示正在使用的端口号信息):

ss -ntl

成功释放端口后再重新启动zookeeper

4.3 启动之后查看status显示为standalone

这个基本上是配置文件/conf/zoo.cfg的问题,检查这个配置文件的格式,每行不要顶格,server.1那不要大写等

4.4 出现后台进程“杀不死”的情况

当需要杀死进程重新执行启动命令时,杀死zookeeper的后台守护进程之后,等一会发现jps执行后还是存在后台进程,这种可能是因为你以前安装过zookeeper,使用下列命令查看:

systemctl status zookeeper

可能会发现一个不知道哪冒出来的zookeeper正在运行,影响我后续重新安装的zookeeper的启动,我们将这个zookeeper停掉再去执行我们想要运行的指定版本的zookeeper发现就没有问题了.


本文转载自: https://blog.csdn.net/lwb3299870/article/details/140009387
版权归原作者 朴会长 所有, 如有侵权,请联系我们删除。

“zookeeper集群部署(centos7.6,zookeeper版本3.7.2)”的评论:

还没有评论