【简单快速】用三台Ubuntu虚拟机搭建zookeeper(完全傻瓜式照搬即可)

1,788 阅读4分钟

目标

简洁快速地用VMware创建三台虚拟机master,slave1,slave2,配置java环境,搭建zookeeper完全分布式集群

版本选择

版本
VMware16.0
LinuxUbuntu20.04
javajdk-8u162-linux-x64
zookeeperapache-zookeeper-3.5.8-bin

下载链接

链接:pan.baidu.com/s/1QWyUgtiw…
提取码:zook

安装VMware

点击下面的链接,按照步骤安装VMware,用于启动虚拟机

软件管家公众号安装VMware

安装三台虚拟机

三台虚拟机的操作大致相同,下面以master为例

  1. 打开VMware,选择【创建新的虚拟机】

imagepng

  1. 一直点击下一步即可

imagepng

imagepng

imagepng

imagepng

imagepng

imagepng

imagepng

imagepng

到这里都是一直点击【下一步】就可以了(除了改虚拟机名),其他配置要求需要的话可以自己改一下

imagepng

imagepng

  1. 这里点击【自定义硬件】,点击【新CD/DVD】,选择ISO映像文件,选择我们下载的【ubuntu-20.04.6-live-server-amd64】文件,之后点击【完成】即可

slave1和slave2服务器同上,只需要将master改为对应的服务器名称即可

点击【开启此虚拟机】,运行虚拟机

imagepng

选择【English】作为系统语言

imagepng

选择【continue without updating】,放弃更新

imagepng

下面就一直选择【Done】就可以了

填写服务器信息,这里建议三台服务器的密码都设置成相同的,方便后面同步操作 imagepng

这里选中【install openssh server】

imagepng

后面就一直选择【Done】就可以了,直到下面这个加载界面

imagepng

等待下载完成即可

至此,虚拟机安装完成(slave1和slave2重复进行上述操作即可)

用XShell连接虚拟机

这里建议用XShell连接虚拟机,方便三台虚拟机进行同步操作

xshell常用快捷键如下

功能快捷键
复制ctrl + ins【0】
粘贴shift + ins【0】
切换会话alt + 会话序号【1/2/3】

当VMware中看到这个界面时,说明虚拟机开机成功了

image.png

输入账号密码进行登录

登录成功后输入shell命令【ip addr】,找到当前虚拟机的ip地址【红框中的内容】,后面主机ip地址就填写这个

image.png

选择【在后台运行】

image.png

打开XShell,点击新建会话,输入名称,主机ip地址,用户和密码,依次连接三台服务器

image.png

image.png

依次连接完三台虚拟机之后,点击【工具】->【发送键输入到】->【所有会话】,同步操作三台虚拟机

image.png

!!!后面的操作有【单独】标签,则表示选择发送键盘输入到当前会话,否则表示三台机器同步操作,选择发送键盘输入的所有会话

在安装java环境之前,我们还需要进行两部操作‘

  1. 更新apt
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install lrzsz # 下载rz,后续导入文件需要
sudo apt-get install firewalld # 后续打开端口号需要
  1. 关闭防火墙
sudo ufw disable # 禁用防火墙
  1. 修改hosts文件(将下面的内容粘贴到host文件最上面)
sudo vim /etc/hosts # 修改hosts文件

以【主机ip地址 主机名】 格式依次把三台机器写上去,可以参考下下面这个

----->打开文件后,输入 i 进行编辑,在最上面写入类似于下面三行,按【esc】键退出编辑模式,按【:】键,输入【wq】再按【回车键】即可退出vim

image.png

  1. 尝试ping通其他虚拟机
ping master
ping slave1
ping slave2

每台服务器依次执行一遍(不ping自己),出现下面内容即表示修改hosts文件成功了

image.png ---->按ctrl+Z退出

安装java

  1. 解压安装包
sudo mkdir /opt/java # 创建java存放目录
cd /opt/java # 切换路径
sudo rz # 选择下载的【jdk-8u162-linux-x64.tar.gz】文件,将其上传到虚拟机
sudo tar -zxf ./jdk-8u162-linux-x64.tar.gz # 解压压缩包
ls # 可以看到目录下多了个【jdk1.8.0_162】目录
  1. 配置 bashrc 文件
sudo vim ~/.bashrc # 编辑bashrc 文件,在文件开头处输入如下内容
#java
export JAVA_HOME=/opt/java/jdk1.8.0_162
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
source ~/.bashrc # 让bashrc文件的配置立即生效
  1. 查看java版本
java -version # 查看java版本

若出现如下内容,则说明java环境已配置成功 image.png

image.png

image.png

安装zookeeper

  1. 解压压缩包
cd ~ # 回到根目录
sudo rz -be # 选择下载的【apache-zookeeper-3.5.8-bin.tar.gz】文件(输入 -be 可以避免乱码问题)
sudo tar -zxf ./apache-zookeeper-3.5.8-bin.tar.gz -C /usr/local/ # 解压压缩包
cd /usr/local/ # 切换目录
sudo mv ./apache-zookeeper-3.5.8-bin/ ./zookeeper # 修改文件名
sudo chown -R master ./zookeeper # 【单独】(将master改为slave1/slave2)依次在对应虚拟机上输入,如果是直接用root的话就无所谓了
  1. 修改zookeeper配置文件
sudo mv /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
cd /usr/local/zookeeper/conf/
sudo mkdir ./zookeeperData
sudo mkdir ./zookeeperDataLog
vim /usr/local/zookeeper/conf/zoo.cfg # 修改zookeeper配置文件

将图片中的红框部分替换为下面代码

dataDir=/usr/local/zookeeper/zookeeperData
dataLogDir=/usr/local/zookeeper/zookeeperDataLog

image.png

将下面的内容粘贴到 zoo.cfg 文件末尾

autopurge.purgeInterval=72
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

这是修改后的zoo.cfg 文件,可以对照一下

image.png

  1. 修改 bashrc 文件
vim ~/.bashrc  #  修改 bashrc 文件,在之前java贴的内容下面在贴下面的代码
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source ~/.bashrc # 让bashrc文件的配置立即生效
  1. 修改myid文件
cd /usr/local/zookeeper/zookeeperData
vim myid # 【单独】修改myid文件,master的内容为0,slave1的为1,slave2的为2
  1. 打开端口号
sudo firewall-cmd --zone=public --add-port=2888/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3888/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent

当都提示【success】时,重启虚拟机

sudo reboot
  1. 启动zookeeper
zkServer.sh start  # 启动zookeeper (以master,slave1,slave2的顺序依次启动)输入【zkServer.sh start-foreground】也可以

jps #可以看到名为”QuorumPeerMain”的进程在运行

zkServer.sh status # 查看zookeeper状态 (!必须保证三台虚拟器都启动zookeeper后再查看!)

image.png

若出现如下情况,则表示zookeeper已正常启动

image.png

image.png

image.png

至此,zookeeper的安装就完成啦。

第一次写这类文章,有点紧张,之前都是线下教朋友搭建zookeeper的,线上不知道怎么简单通透地表达。如果有啥不懂或者过程出了什么bug也可以在评论区一起讨论,写的不好的地方也欢迎大佬指正。我也是小白,还在努力前行中。