Kafka从早期的消息传输系统转型为开源分布式事件流处理平台系统,所以很多核心组件,核心操作都是基于分布式多节点的。本文这里采用三台虚拟机模拟真实物理主机搭建Zookeeper集群和kafka集群。
VMware可以使用户在一台计算机上同时运行多个操作系统,还可以像Windows应用程序一样来回切换。用户可以如同操作真实安装的系统一样操作虚拟机系统,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或者连接到互联网。生产环境中,我们会使用多台服务器搭建Kafka集群系统,但是对于学习来讲,准备多台独立的服务器还是比较困难的,所以我们这里采用虚拟机的方式进行学习。
【1】安装jdk1.8
① 卸载现有jdk
# 不同节点都要执行操作
rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
② 上传压缩包
将jdk-8u212-linux-x64.tar.gz文件上传到虚拟机的/opt/softinstall
目录中
③ 解压JDK到/opt/module目录下
[root@localhost ~]# cd /opt/softinstall/
[root@localhost ~]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
④ 配置JDK环境变量
新建/etc/profile.d/my_env.sh
文件,
vim /etc/profile.d/my_env.sh
添加如下内容,保存后退出。
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
使新的环境变量PATH生效
source /etc/profile
检测是否生效:
[root@centos3 softinstall]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
三个节点上都要配置jdk环境。
【2】安装Zookeeper
① 上传ZooKeeper压缩包
将apache-zookeeper-3.7.1-bin.tar.gz
文件上传到三台虚拟机的/opt/softinstall
目录中
② 解压ZooKeeper压缩包
# 进入到/opt/softinstall目录中
cd /opt/softinstall/
# 解压缩文件到指定目录
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/module/
# 进入/opt/module目录
cd /opt/module
# 文件目录改名
mv apache-zookeeper-3.7.1-bin/ zookeeper
③ 配置服务器编号
(1)在/opt/module/zookeeper/目录下创建zkData
# 进入/opt/module/zookeeper目录
cd /opt/module/zookeeper
# 创建zkData文件目录
mkdir zkData
(2)创建myid文件
# 进入/opt/module/zookeeper/zkData目录
cd /opt/module/zookeeper/zkData
# 创建myid文件
vim myid
(3)在文件中增加内容
1
服务器与编号对应关系如下:
Centos1:1
Centos2:2
Centos3:3
④ 修改配置文件
(1)重命名/opt/module/zookeeper/conf
目录下的zoo_sample.cfg
文件为zoo.cfg
文件
# 进入cd /opt/module/zookeeper/conf文件目录
cd /opt/module/zookeeper/conf
# 修改文件名称
mv zoo_sample.cfg zoo.cfg
(2)修改zoo.cfg文件
# 修改文件内容
vim zoo.cfg
# 以下内容为修改内容
dataDir=/opt/module/zookeeper/zkData
# 以下内容为新增内容
####################### cluster ##########################
# server.A=B:C:D
#
# A是一个数字,表示这个是第几号服务器
# B是A服务器的主机名
# C是A服务器与集群中的主服务器(Leader)交换信息的端口
# D是A服务器用于主服务器(Leader)选举的端口
#########################################################
server.1=centos1:2888:3888
server.2=centos2:2888:3888
server.3=centos3:2888:3888
上述操作针对其他两台虚拟机同样执行。
⑤ 启动/关闭/查看状态
启动ZooKeeper
# 进入zookeeper目录
cd /opt/module/zookeeper
# 启动ZK服务
bin/zkServer.sh start
关闭ZooKeeper
# 进入zookeeper目录
cd /opt/module/zookeeper
# 关闭ZK服务
bin/zkServer.sh stop
查看ZooKeeper状态
# 进入zookeeper目录
cd /opt/module/zookeeper
# 查看ZK服务状态
bin/zkServer.sh status
JPS检测,QuorumPeerMain表示Zookeeper进程
[root@centos1 zookeeper]# jps
2619 Jps
2541 QuorumPeerMain