目标
简洁快速地用VMware创建三台虚拟机master,slave1,slave2,配置java环境,搭建zookeeper完全分布式集群
版本选择
| 版本 | |
|---|---|
| VMware | 16.0 |
| Linux | Ubuntu20.04 |
| java | jdk-8u162-linux-x64 |
| zookeeper | apache-zookeeper-3.5.8-bin |
下载链接
链接:pan.baidu.com/s/1QWyUgtiw…
提取码:zook
安装VMware
点击下面的链接,按照步骤安装VMware,用于启动虚拟机
安装三台虚拟机
三台虚拟机的操作大致相同,下面以master为例
- 打开VMware,选择【创建新的虚拟机】
- 一直点击下一步即可
到这里都是一直点击【下一步】就可以了(除了改虚拟机名),其他配置要求需要的话可以自己改一下
- 这里点击【自定义硬件】,点击【新CD/DVD】,选择ISO映像文件,选择我们下载的【ubuntu-20.04.6-live-server-amd64】文件,之后点击【完成】即可
slave1和slave2服务器同上,只需要将master改为对应的服务器名称即可
点击【开启此虚拟机】,运行虚拟机
选择【English】作为系统语言
选择【continue without updating】,放弃更新
下面就一直选择【Done】就可以了
填写服务器信息,这里建议三台服务器的密码都设置成相同的,方便后面同步操作
这里选中【install openssh server】
后面就一直选择【Done】就可以了,直到下面这个加载界面
等待下载完成即可
至此,虚拟机安装完成(slave1和slave2重复进行上述操作即可)
用XShell连接虚拟机
这里建议用XShell连接虚拟机,方便三台虚拟机进行同步操作
xshell常用快捷键如下
| 功能 | 快捷键 |
|---|---|
| 复制 | ctrl + ins【0】 |
| 粘贴 | shift + ins【0】 |
| 切换会话 | alt + 会话序号【1/2/3】 |
当VMware中看到这个界面时,说明虚拟机开机成功了
输入账号密码进行登录
登录成功后输入shell命令【ip addr】,找到当前虚拟机的ip地址【红框中的内容】,后面主机ip地址就填写这个
选择【在后台运行】
打开XShell,点击新建会话,输入名称,主机ip地址,用户和密码,依次连接三台服务器
依次连接完三台虚拟机之后,点击【工具】->【发送键输入到】->【所有会话】,同步操作三台虚拟机
!!!后面的操作有【单独】标签,则表示选择发送键盘输入到当前会话,否则表示三台机器同步操作,选择发送键盘输入的所有会话
在安装java环境之前,我们还需要进行两部操作‘
- 更新apt
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install lrzsz # 下载rz,后续导入文件需要
sudo apt-get install firewalld # 后续打开端口号需要
- 关闭防火墙
sudo ufw disable # 禁用防火墙
- 修改hosts文件(将下面的内容粘贴到host文件最上面)
sudo vim /etc/hosts # 修改hosts文件
以【主机ip地址 主机名】 格式依次把三台机器写上去,可以参考下下面这个
----->打开文件后,输入 i 进行编辑,在最上面写入类似于下面三行,按【esc】键退出编辑模式,按【:】键,输入【wq】再按【回车键】即可退出vim
- 尝试ping通其他虚拟机
ping master
ping slave1
ping slave2
每台服务器依次执行一遍(不ping自己),出现下面内容即表示修改hosts文件成功了
---->按ctrl+Z退出
安装java
- 解压安装包
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】目录
- 配置 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文件的配置立即生效
- 查看java版本
java -version # 查看java版本
若出现如下内容,则说明java环境已配置成功
安装zookeeper
- 解压压缩包
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的话就无所谓了
- 修改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
将下面的内容粘贴到 zoo.cfg 文件末尾
autopurge.purgeInterval=72
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
这是修改后的zoo.cfg 文件,可以对照一下
- 修改 bashrc 文件
vim ~/.bashrc # 修改 bashrc 文件,在之前java贴的内容下面在贴下面的代码
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source ~/.bashrc # 让bashrc文件的配置立即生效
- 修改myid文件
cd /usr/local/zookeeper/zookeeperData
vim myid # 【单独】修改myid文件,master的内容为0,slave1的为1,slave2的为2
- 打开端口号
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
- 启动zookeeper
zkServer.sh start # 启动zookeeper (以master,slave1,slave2的顺序依次启动)输入【zkServer.sh start-foreground】也可以
jps #可以看到名为”QuorumPeerMain”的进程在运行
zkServer.sh status # 查看zookeeper状态 (!必须保证三台虚拟器都启动zookeeper后再查看!)
若出现如下情况,则表示zookeeper已正常启动
至此,zookeeper的安装就完成啦。
第一次写这类文章,有点紧张,之前都是线下教朋友搭建zookeeper的,线上不知道怎么简单通透地表达。如果有啥不懂或者过程出了什么bug也可以在评论区一起讨论,写的不好的地方也欢迎大佬指正。我也是小白,还在努力前行中。