- 规划
- 基础环境配置
- (1)修改主机名
- (2)关闭防火墙及SELinux服务
- (3)编辑 hosts 文件
- (4)配置 yum 安装源
- (4)安装 JDK 环境
- 搭建 ZooKeeper 集群
- (1)解压 ZooKeeper 软件包
- (2)修改 3 个节点配置文件
- (3)创建 myid 文件
- (4)启动 ZooKeeper 服务
- 搭建 Kafka 集群
- (1)解压 Kafka 软件包
- (2)修改 3 个节点配置文件
- (3)启动服务
- (4)测试服务
| IP | 主机名 | 节点 |
|---|---|---|
| 192.168.200.40 | zookeeper1 | 集群节点 |
| 192.168.200.50 | zookeeper2 | 集群节点 |
| 192.168.200.60 | zookeeper3 | 集群节点 |
基础环境配置 (1)修改主机名
使用 hostnamectl 命令修改 3 台主机的主机名。
Mycat 节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname zookeeper1 [root@localhost ~]# bash [root@zookeeper1 ~]#
db1 节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname zookeeper2 [root@localhost ~]# bash [root@zookeeper2 ~]#
db2 节点修改主机名命令:
[root@localhost ~]# hostnamectl set-hostname zookeeper1 [root@localhost ~]# bash [root@zookeeper3 ~]#
(2)关闭防火墙及SELinux服务
3 台集群虚拟机关闭防火墙firewalld及SELinux服务,命令如下:
# setenforce 0 # systemctl stop firewalld
(3)编辑 hosts 文件
3 台虚拟机的/etc/hosts 文件配置部分:
# cat /etc/hosts 192.168.200.40 zookeeper1 192.168.200.50 zookeeper2 192.168.200.60 zookeeper3
(4)配置 yum 安装源
移除原有的本地repo文件,
# mv /etc/yum.repos.d/* /media/
创建本地Yum源文件local.repo。
# cat /etc/yum.repos.d/local.repo [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [mariadb] name=mariadb baseurl=file:///root/gpmall-repo gpgcheck=0 enabled=1 # mkdir /opt/centos # mount CentOS-7-x86_64-DVD-1511.iso /opt/centos/ mount: /dev/loop0 is write-protected, mounting read-only
验证本地repo文件是否配置成功,
# yum clean all Loaded plugins: fastestmirror Cleaning repos: centos mariadb Cleaning up everything Cleaning up list of fastest mirrors # yum repolist Loaded plugins: fastestmirror centos | 3.6 kB 00:00:00 mariadb | 2.9 kB 00:00:00 (1/3): centos/group_gz | 155 kB 00:00:00 (2/3): mariadb/primary_db | 144 kB 00:00:00 (3/3): centos/primary_db | 2.8 MB 00:00:00 Determining fastest mirrors repo id repo name status centos centos 3,723 mariadb mariadb 165 repolist: 3,888
(4)安装 JDK 环境
安装 Java 环境:
# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel ... [root@mall ~]# java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
搭建 ZooKeeper 集群 (1)解压 ZooKeeper 软件包
将 zookeeper-3.4.14.tar.gz 软件包上传至 3 个节点的/root 目录下,进行解压操作,3 个节点均执行命令如下:
# tar -zxvf zookeeper-3.4.14.tar.gz
(2)修改 3 个节点配置文件
3台虚拟机进入 zookeeper-3.4.14/conf 目录下,修改 zoo_sample.cfg 文件为zoo.cfg,并编辑该文件内容如下:
# cd zookeeper-3.4.14/conf # mv zoo_sample.cfg zoo.cfg # vi zoo.cfg # grep -n '^'[a-Z] zoo.cfg 2:tickTime=2000 5:initLimit=10 8:syncLimit=5 12:dataDir=/tmp/zookeeper 14:clientPort=2181 29:server.1=192.168.200.40:2888:3888 30:server.2=192.168.200.50:2888:3888 31:server.3=192.168.200.60:2888:3888
(3)创建 myid 文件
在 3 台机器 dataDir 目录(此处为/tmp/zookeeper)下,分别创建一个 myid 文件,文件内容分别只有一行,其内容为 1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper 是根据该文件来决定 ZooKeeper 集群各个机器的身份分配。
创建 myid 文件,命令如下:
zookeeper1 节点:
[root@zookeeper1 ~]# mkdir /tmp/zookeeper [root@zookeeper1 ~]# vi /tmp/zookeeper/myid [root@zookeeper1 ~]# cat /tmp/zookeeper/myid 1
zookeeper2 节点:
[root@zookeeper2 ~]# mkdir /tmp/zookeeper [root@zookeeper2 ~]# vi /tmp/zookeeper/myid [root@zookeeper2 ~]# cat /tmp/zookeeper/myid 2
zookeeper3 节点:
[root@zookeeper3 ~]# mkdir /tmp/zookeeper [root@zookeeper3 ~]# vi /tmp/zookeeper/myid [root@zookeeper2 ~]# cat /tmp/zookeeper/myid 3
(4)启动 ZooKeeper 服务
在 3 台机器的 zookeeper-3.4.14/bin 目录下执行命令如下:
zookeeper1 节点:
[root@zookeeper1 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zookeeper1 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: follower
zookeeper2 节点:
[root@zookeeper2 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... already running as process 10175. [root@zookeeper2 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: leader
zookeeper3 节点:
[root@zookeeper3 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zookeeper3 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg Mode: follower
可以看到,3 个节点,zookeeper2 为 leader,其他的都是 follower。
至此,ZooKeeper 集群配置完毕。
注意:查看状态出现问题时,所有节点都启动一下,再查看状态。
搭建 Kafka 集群 (1)解压 Kafka 软件包
将提供的 kafka_2.11-1.1.1.tgz 软件包,上传至 3 个节点的/root 目录下,并执行解压操作,
3 个节点执行的解压命令如下:
# tar -zxvf kafka_2.11-1.1.1.tgz
(2)修改 3 个节点配置文件
3台虚拟机进入 kafka_2.11-1.1.1/config 目录下,编辑 server.properties 文件。在配置文件中找到以下两行并注释掉(在文本前加#)如下所示:
#broker.id=0 #zookeeper.connect=localhost:2181
然后在配置文件的底部添加如下 3 个配置。
zookeeper1节点:
broker.id=1 zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181 listeners = PLAINTEXT://192.168.200.40:9092
zookeeper2 节点:
broker.id=2 zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181 listeners = PLAINTEXT://192.168.200.50:9092
zookeeper3 节点:
broker.id=3 zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181 listeners = PLAINTEXT://192.168.200.60:9092
(3)启动服务
3台虚拟机,进入 kafka_2.11-1.1.1/bin 目录下,启动服务命令如下。
zookeeper1 节点:
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties [root@zookeeper1 bin]# jps 11416 Kafka 11464 Jps 10479 QuorumPeerMain
zookeeper2 节点:
[root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties [root@zookeeper2 bin]# jps 11121 Kafka 11188 Jps 10175 QuorumPeerMain
zookeeper3 节点:
[root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties [root@zookeeper3 bin]# jps 11080 Kafka 10188 QuorumPeerMain 11149 Jps
(4)测试服务
在 zookeeper1节点,进入 kafka_2.11-1.1.1/bin 目录下,创建 topic 命令如下。
zookeeper1 节点:
[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.200.40:2181 --replication-factor 1 --partitions 1 --topic test Created topic "test".
如果成功的话,会输出“Created topic “test”.”。
查看 topic,虽然 topic 是在 172.16.51.23 上创建的,但是在其他机器上也能看到。例如在任意启动的机器 kafka_2.11-1.1.1/bin 的目录中执行命令如下:
zookeeper2 节点:
[root@zookeeper2 bin]# ./kafka-topics.sh --list --zookeeper 192.168.200.50:2181 test
zookeeper3 节点:
[root@zookeeper3 bin]# ./kafka-topics.sh --list --zookeeper 192.168.200.60:2181 test
测试成功。
《构建读写分离的数据库集群》
https://blog.csdn.net/m0_67818525/article/details/124504978?spm=1001.2014.3001.5501



