1+X 云计算运维与开发(中级)案例实战——Kafka集群部署

传送门
教育部职业教育将启动“1+X”证书制度改革
职业教育改革1+X证书制度试点启动
1+X成绩/证书查询入口

什么是kafka???

特征:
Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  • 高吞吐量 : 即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
  • 支持通过Kafka服务器和消费机集群来分区消息。
  • 支持Hadoop并行数据加载。
    Kafka通过官网发布了最新版本2.5.0

1. 案例目标

2. 案例分析

2.1 规划节点

ZooKeeper集群系统的节点规划,节点规划如下

IP 主机名 节点
172.16.51.170 zookeeper1 集群节点
172.16.51.171 zookeeper2 集群节点
172.16.51.172 zookeeper3 集群节点

2.2 基础准备

使用ZooKeeper集群搭建的3个节点来构建Kafka集群,因为Kafka服务依赖于ZooKeeper服务,所以不再多创建云主机来进行试验。软件包使用提供的kafka_2.11-1.1.1.tgz软件包

3. 案例实施

3.1 搭建Kafka集群

  • 1.解压Kafka软件包

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

#  tar -zxvf kafka_2.11-1.1.1.tgz 
  • 2.修改3个节点配置文件

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

#broker.id=0
#zookeeper.connect=localhost:2181
然后在配置文件的底部添加如下3行配置
broker.id=1
zookeeper.connect=172.16.51.170:2181,172.16.51.171:2181,172.16.51.172:2181
listeners = PLAINTEXT://172.16.51.170:9092

zookeeper2节点

#broker.id=0
#zookeeper.connect=localhost:2181
然后在配置文件的底部添加如下3行配置
broker.id=2
zookeeper.connect=172.16.51.170:2181,172.16.51.171:2181,172.16.51.172:2181
listeners = PLAINTEXT://172.16.51.171:9092

zookeeper3节点

#broker.id=0
#zookeeper.connect=localhost:2181
然后在配置文件的底部添加如下3行配置
broker.id=3
zookeeper.connect=172.16.51.170:2181,172.16.51.171:2181,172.16.51.172:2181
listeners = PLAINTEXT://172.16.51.172:9092

命令解析:

broker.id:每台机器不能一样。
zookeeper.connect:因为有3台ZooKeeper服务器,所以在这里zookeeper.connect设置为3台。
listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。
另外两台服务器,zookeeper.connect的配置跟这里的一样, 但是broker.id和listeners不能一样。

  • 3.启动服务

在zookeeper1节点,进入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

3.2 测试服务

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

[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 172.16.51.170:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
//如果成功的话,会输出“Created topic "test".”

如果未成功,点击进入 传送门!!!

查看topic,虽然topic是在172.16.51.170上创建的,但是在其他机器上也能看到。例如在任意启动的机器kafka_2.11-1.1.1/bin的目录中执行命令如下
zookeeper2节点

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

zookeeper3节点

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

至此,Kafka集群配置完毕

原创文章 28 获赞 326 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Destiny_425/article/details/106124543