软件版本
- JDK:1.8.0_181
- 操作系统:
CentOS Linux release 7.8.2003 (Core) Derived from Red Hat Enterprise Linux 7.8 (Source)
- ZooKeeper:Apache ZooKeeper, version 3.6.2- 09/04/2020 12:44 GMT
- kafka:2.6.1
- 搭建环境:3台虚拟机(基于VMware Workstation16 Pro)
第零步,搭建3台虚拟机
每个虚拟机的操作系统为CentOS Linux release 7.8.2003,可以先配置好一台虚拟机,然后通过克隆的方式配置另外两台虚拟机。如图所示,是笔者自己搭建的三台虚拟机。具体配置步骤可参见该篇博客。
配置过程中,遇到虚拟机不能连接外部网络,通过更改网络连接方式为NAT。详情参见该篇博客。虚拟机三种网络连接方式的区别在这篇博客里写的很清晰了。
第一步,编写集群分发文件脚本以及集群调用脚本
在运行脚本前,需要调通ssh免密登录,通过分发ssh公钥,完成ssh免密登录。否则在执行命令时需要输入密码。配置虚拟机主机名称,使得利用ping命令能够通达
1.集群分发文件脚本xsync
#!/bin/bash #校验参数是否合法 if(($#==0)) then echo 请输入要分发的文件! exit; fi #获取分发文件的绝对路径 dirpath=$(cd `dirname $1`; pwd -P) filename=`basename $1` echo 要分发的文件的路径是:$dirpath/$filename #循环执行rsync分发文件到集群的每条机器 #需要更改为自己的主机名称,在这里我的是zbk601:zbk602:zbk603 for((i=601;i<=603;i++)) do echo ---------------------zbk$i--------------------- rsync -rvlt $dirpath/$filename root@zbk$i:$dirpath done
2.集群调用脚本xcall
#!/bin/bash #在集群的所有机器上批量执行同一条命令 if(($#==0)) then echo 请输入您要操作的命令! exit fi echo 要执行的命令是$* #循环执行此命令 #需要更改为自己的主机名称,在这里我的是zbk601:zbk602:zbk603 for((i=601;i<=603;i++)) do echo ---------------------zbk$i----------------- ssh zbk$i $* done
第二步,下载ZooKeeper
登录官网下载即可,链接在此。
解压后完成第一台的安装。另外两台通过xsync脚本分发即可。
遇到各种问题时,通过检查该博客中的配置要求来解决。
第三步,下载kafka
官方下载链接在此。
其中QuorumPeerMain时zookeeper服务类,ConsoleConsumer时kafka消费者类。
思考
1,学习shell编程,有助于提高对Linux的理解
2,遇到问题,请坚持想下去