zookeeper(二):安装部署

发布时间 2023-07-23 14:20:15作者: zhaoqi94

一、目标

安装部署一套3节点的ZooKeeper集群,并运行起来。

规划如下:

节点ip 主机名 软件
192.168.1.201 zk-node1 zookeeper
192.168.1.202 zk-node2 zookeeper
192.168.1.203 zk-node3 zookeeper

二、搭建虚拟机

1、安装虚拟机软件

这里选择的是VirtualBox:Downloads – Oracle VM VirtualBox

2、安装虚拟机

点击新建按钮

image-20230722173045037

设置镜像和名称,镜像可以去网络上下载CentOS7

image-20230722173236056

设置用户名密码为root/root

image-20230722173419635

配置2U1G,硬盘10G

image-20230722173524813

image-20230722173558870

如果出现不能安装操作系统错误,则需要在该虚拟机的设置——存储中,手动进行镜像选择,后续需要手动安装操作系统。

image-20230722173920672

3、配置网络

选择桥接模式,网卡选择此时正在接入网络的网卡,可以查看windows的 控制面板\网络和 Internet\网络连接,混杂模式选择的全部允许。

image-20230722174308867

配置静态ip,先cd到/etc/sysconfig/network-scripts下,修改相应网卡的配置,在这里是ifcfg-enp0s3。

修改这个文件中的

  • BOOTPROTO=static 表示静态分配ip,另一种是dhcp
  • ONBOOT=yes
  • IPADDR=192.168.1.201 (这个看windows上ipconfig /all可以查看对应桥接网络的地址段、网关、DNS等)
  • GATEWAY=192.168.1.1
  • NETWORK=255.255.255.0
  • DNS1=8.8.8.8

image-20230722174648000

image-20230722174920069

然后执行 service network restart,再去ping一下百度,可以看到网络已经通了。

image-20230722175239089

4、复制虚拟机

该步骤可放到安装完openssh server之后。
右击虚拟机,点击 复制

image-20230722182554224

image-20230722182719717

image-20230722182735595

image-20230722182842763

此时,我们已经成功复制出了 zk-node2zk-node3。我们还需要对这两台虚拟机按照3中的网络配置将ip地址配置为202和203,然后重启网络。

三、配置xshell

用virtualbox自己的操作界面比较难受,我们配置XShell连接虚拟机。

1、服务器安装ssh-server

执行 yum install openssh-server

image-20230722182027597

2、xshell配置连接

image-20230722182233277

image-20230722182254575

四、安装JDK

由于ZooKeeper是用Java写的,所以必须安装JDK才能正常运行。

1、下载JDK

JDK下载链接:https://download.oracle.com/otn/java/jdk/8u381-b09/8c876547113c4e4aab3c868e9e0ec572/jdk-8u381-linux-x64.tar.gz?AuthParam=1690082467_4e7383c80c454d70757d97a042b5b931

2、上传至服务器

3、解压

mkdir /usr/local/java
tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/local/java

4、配置环境变量

~/.bashrc中添加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_381
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

然后执行

source ~/.bashrc
java -version

image-20230723115517412

五、安装ZooKeeper

1、下载ZooKeeper

下载链接:https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

2、解压

tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/
cd /usr/local && mv apache-zookeeper-3.7.1-bin/ zookeeper

进入zookeeper目录,如下:

image-20230723124306855

六、集群部署

1、创建data目录

每个节点执行以下命令:

mkdir /zkData

2、创建myid

每个节点都需要指定myid,且不能相同,三个节点依次为1/2/3:

cd /zkData
echo 1 > myid

3、修改配置文件

cd /usr/local/zookeeper/conf/
mv zoo_sample.cfg zoo.cfg

修改zoo.cfg的dataDir为我们创建的/zkData:

image-20230723132046594

新增集群配置:

server.1=192.168.1.201:2888:3888
server.2=192.168.1.202:2888:3888
server.3=192.168.1.203:2888:3888

image-20230723132327269

4、禁用防火墙

禁用防火墙或者配置端口放行,否则zk集群无法正常工作,会产生如下报错:

[root@localhost bin]# sh zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.

systemctl stop firewalld

配置端口放行参考:(114条消息) Centos 7防火墙开放端口方法_centos7开放端口_奋斗的工程师的博客-CSDN博客

5、启动zookeeper

cd /usr/local/zookeeper/bin/
sh zkServer.sh start

6、查询zookeeper状态

zk-node1:follower

image-20230723140740231

zk-node2:follower

image-20230723140809626

zk-node3:leader

image-20230723140826435