0


搭建ZooKeeper集群和Kafka集群

目录

规划

IP主机名节点192.168.200.40zookeeper1集群节点192.168.200.50zookeeper2集群节点192.168.200.60zookeeper3集群节点

基础环境配置

(1)修改主机名

使用 hostnamectl 命令修改 3 台主机的主机名。
Mycat 节点修改主机名命令:

  1. [root@localhost ~]# hostnamectl set-hostname zookeeper1
  2. [root@localhost ~]# bash
  3. [root@zookeeper1 ~]#

db1 节点修改主机名命令:

  1. [root@localhost ~]# hostnamectl set-hostname zookeeper2
  2. [root@localhost ~]# bash
  3. [root@zookeeper2 ~]#

db2 节点修改主机名命令:

  1. [root@localhost ~]# hostnamectl set-hostname zookeeper1
  2. [root@localhost ~]# bash
  3. [root@zookeeper3 ~]#

(2)关闭防火墙及SELinux服务

3 台集群虚拟机关闭防火墙firewalld及SELinux服务,命令如下:

  1. #setenforce0#systemctlstop firewalld

(3)编辑 hosts 文件

3 台虚拟机的/etc/hosts 文件配置部分:

  1. #cat/etc/hosts192.168.200.40 zookeeper1
  2. 192.168.200.50 zookeeper2
  3. 192.168.200.60 zookeeper3

(4)配置 yum 安装源

移除原有的本地repo文件,

  1. #mv/etc/yum.repos.d/* /media/

创建本地Yum源文件local.repo。

  1. #cat/etc/yum.repos.d/local.repo [centos]
  2. name=centos
  3. baseurl=file:///opt/centos
  4. gpgcheck=0
  5. enabled=1[mariadb]
  6. name=mariadb
  7. baseurl=file:///root/gpmall-repo
  8. gpgcheck=0
  9. enabled=1#mkdir/opt/centos#mountCentOS-7-x86_64-DVD-1511.iso /opt/centos/
  10. mount:/dev/loop0 is write-protected, mounting read-only

验证本地repo文件是否配置成功,

  1. #yumclean all
  2. Loaded plugins: fastestmirror
  3. Cleaning repos: centos mariadb
  4. Cleaning up everything
  5. Cleaning up list of fastest mirrors
  6. #yumrepolist
  7. Loaded plugins: fastestmirror
  8. centos |3.6 kB 00:00:00
  9. 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
  10. Determining fastest mirrors
  11. repo id repo name status
  12. centos centos 3,723
  13. mariadb mariadb 165
  14. repolist:3,888

(4)安装 JDK 环境

安装 Java 环境:

  1. #yuminstall -y java-1.8.0-openjdk java-1.8.0-openjdk-devel...[root@mall ~]# java -version
  2. openjdk version "1.8.0_222"
  3. OpenJDK Runtime Environment(build 1.8.0_222-b10)
  4. OpenJDK 64-Bit Server VM(build 25.222-b10, mixed mode)

搭建 ZooKeeper 集群

(1)解压 ZooKeeper 软件包

将 zookeeper-3.4.14.tar.gz 软件包上传至 3 个节点的/root 目录下,进行解压操作,3 个节点均执行命令如下:

  1. #tar-zxvf zookeeper-3.4.14.tar.gz

(2)修改 3 个节点配置文件

3台虚拟机进入 zookeeper-3.4.14/conf 目录下,修改 zoo_sample.cfg 文件为zoo.cfg,并编辑该文件内容如下:

  1. #cdzookeeper-3.4.14/conf#mvzoo_sample.cfg zoo.cfg #vizoo.cfg #grep-n '^'[a-Z] zoo.cfg 2:tickTime=20005:initLimit=108:syncLimit=512:dataDir=/tmp/zookeeper
  2. 14:clientPort=218129:server.1=192.168.200.40:2888:388830:server.2=192.168.200.50:2888:388831:server.3=192.168.200.60:2888:3888

(3)创建 myid 文件

在 3 台机器 dataDir 目录(此处为/tmp/zookeeper)下,分别创建一个 myid 文件,文件内容分别只有一行,其内容为 1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper 是根据该文件来决定 ZooKeeper 集群各个机器的身份分配。
创建 myid 文件,命令如下:
zookeeper1 节点:

  1. [root@zookeeper1 ~]# mkdir /tmp/zookeeper
  2. [root@zookeeper1 ~]# vi /tmp/zookeeper/myid
  3. [root@zookeeper1 ~]# cat /tmp/zookeeper/myid
  4. 1

zookeeper2 节点:

  1. [root@zookeeper2 ~]# mkdir /tmp/zookeeper
  2. [root@zookeeper2 ~]# vi /tmp/zookeeper/myid
  3. [root@zookeeper2 ~]# cat /tmp/zookeeper/myid
  4. 2

zookeeper3 节点:

  1. [root@zookeeper3 ~]# mkdir /tmp/zookeeper
  2. [root@zookeeper3 ~]# vi /tmp/zookeeper/myid
  3. [root@zookeeper2 ~]# cat /tmp/zookeeper/myid
  4. 3

(4)启动 ZooKeeper 服务

在 3 台机器的 zookeeper-3.4.14/bin 目录下执行命令如下:
zookeeper1 节点:

  1. [root@zookeeper1 bin]# ./zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
  5. [root@zookeeper1 bin]# ./zkServer.sh status
  6. ZooKeeper JMX enabled by default
  7. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  8. Mode: follower

zookeeper2 节点:

  1. [root@zookeeper2 bin]# ./zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  4. Starting zookeeper ... already running as process 10175.[root@zookeeper2 bin]# ./zkServer.sh status
  5. ZooKeeper JMX enabled by default
  6. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  7. Mode: leader

zookeeper3 节点:

  1. [root@zookeeper3 bin]# ./zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
  5. [root@zookeeper3 bin]# ./zkServer.sh status
  6. ZooKeeper JMX enabled by default
  7. Using config:/root/zookeeper-3.4.14/bin/../conf/zoo.cfg
  8. Mode: follower

可以看到,3 个节点,zookeeper2 为 leader,其他的都是 follower。
至此,ZooKeeper 集群配置完毕。
注意:查看状态出现问题时,所有节点都启动一下,再查看状态。


搭建 Kafka 集群

(1)解压 Kafka 软件包

将提供的 kafka_2.11-1.1.1.tgz 软件包,上传至 3 个节点的/root 目录下,并执行解压操作,
3 个节点执行的解压命令如下:

  1. #tar-zxvf kafka_2.11-1.1.1.tgz

(2)修改 3 个节点配置文件

3台虚拟机进入 kafka_2.11-1.1.1/config 目录下,编辑 server.properties 文件。在配置文件中找到以下两行并注释掉(在文本前加#)如下所示:

  1. #broker.id=0#zookeeper.connect=localhost:2181

然后在配置文件的底部添加如下 3 个配置。
zookeeper1节点:

  1. broker.id=1
  2. zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181
  3. listeners = PLAINTEXT://192.168.200.40:9092

zookeeper2 节点:

  1. broker.id=2
  2. zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181
  3. listeners = PLAINTEXT://192.168.200.50:9092

zookeeper3 节点:

  1. broker.id=3
  2. zookeeper.connect=192.168.200.40:2181,192.168.200.50:2181,192.168.200.60:2181
  3. listeners = PLAINTEXT://192.168.200.60:9092

(3)启动服务

3台虚拟机,进入 kafka_2.11-1.1.1/bin 目录下,启动服务命令如下。
zookeeper1 节点:

  1. [root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
  2. [root@zookeeper1 bin]# jps
  3. 11416 Kafka
  4. 11464 Jps
  5. 10479 QuorumPeerMain

zookeeper2 节点:

  1. [root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
  2. [root@zookeeper2 bin]# jps
  3. 11121 Kafka
  4. 11188 Jps
  5. 10175 QuorumPeerMain

zookeeper3 节点:

  1. [root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
  2. [root@zookeeper3 bin]# jps
  3. 11080 Kafka
  4. 10188 QuorumPeerMain
  5. 11149 Jps

(4)测试服务

在 zookeeper1节点,进入 kafka_2.11-1.1.1/bin 目录下,创建 topic 命令如下。
zookeeper1 节点:

  1. [root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.200.40:2181--replication-factor 1--partitions 1--topic test
  2. Created topic "test".

如果成功的话,会输出“Created topic “test”.”。
查看 topic,虽然 topic 是在 172.16.51.23 上创建的,但是在其他机器上也能看到。例如在任意启动的机器 kafka_2.11-1.1.1/bin 的目录中执行命令如下:
zookeeper2 节点:

  1. [root@zookeeper2 bin]# ./kafka-topics.sh --list --zookeeper 192.168.200.50:2181
  2. test

zookeeper3 节点:

  1. [root@zookeeper3 bin]# ./kafka-topics.sh --list --zookeeper 192.168.200.60:2181
  2. test

测试成功。


《构建读写分离的数据库集群》

  1. https://blog.csdn.net/m0_67818525/article/details/124504978?spm=1001.2014.3001.5501
标签: kafka zookeeper centos

本文转载自: https://blog.csdn.net/m0_67818525/article/details/124511020
版权归原作者 mhcwz 所有, 如有侵权,请联系我们删除。

“搭建ZooKeeper集群和Kafka集群”的评论:

还没有评论