【亲测有效】Kafka3.5.0分布式集群安装部署与测试-最新

Kafka使用Zookeeper作为其分布式协调框架,能很好地将消息生产、消息存储、消息消费的过程结合在一起。同时借助Zookeeper,Kafka能够将生产者、消费者和集群节点在内的所有组件,在无状态的情况下建立起生产者和消费者的订阅关系,并实现生产者与消费者的负载均衡。

可以看出Kafka集群依赖于Zookeeper,所以在安装Kafka之前需要提前安装Zookeeper。Zookeeper集群在前面Hadoop集群的构建过程中已经在使用,Kafka可以共用之前安装的Zookeeper集群,接下来只需要安装Kafka集群即可。

1 .下载并解压Kafka

下载kafka_2.13-3.5.0.tgz安装包,选择hadoop01作为安装节点,然后上传至hadoop01节点的 /home/hadoop/app 目录下进行解压安装,具体操作命令如下。

hadoop@hadoop01 app\]$ tar -zxvf kafka_2.13-3.5.0.tgz \[hadoop@hadoop01 app\]$ rm -rf kafka_2.13-3.5.0.tgz \[hadoop@hadoop01 app\]$ ls kafka_2.13-3.5.0 \[hadoop@hadoop01 app\]$ ln -s kafka_2.13-3.5.0 kafka ##### **2** .修改**Kafka** 配置文件 从Kafka架构图中可以看出,它包含生产者、消费者、Zookeeper和Kafka这4个角色,所以只需要修改以下4个配置文件即可。 (1)修改zookeeper.properties配置文件 进入Kafka根目录下的config文件夹中,修改zookeeper. properties配置文件,具体内容如下。 \[hadoop@hadoop01 config\]$ vi zookeeper.properties # 指定Zookeeper数据目录 dataDir=/home/hadoop/data/zookeeper/zkdata # 指定Zookeeper端口号 clientPort=2181 (2)修改consumer.properties配置文件 进入Kafka根目录下的config文件夹中,修改consumer. properties配置文件,具体内容如下。 \[hadoop@hadoop01 config\]$ vi consumer.properties #配置Kafka集群 bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092 (3)修改producer.properties配置文件 进入Kafka根目录下的config文件夹中,修改producer. properties配置文件,具体内容如下。 \[hadoop@hadoop01 config\]$ vi producer.properties #Kafka集群配置 bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092 (4)修改server.properties配置文件 进入Kafka根目录下的config文件夹中,修改server. properties配置文件,具体内容如下。 \[hadoop@hadoop01 config\]$ vi server.properties #指定Zookeeper集群 zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181 ##### **3** .**Kafka** 安装目录分发集群节点 将hadoop01节点中配置好的Kafka安装目录,分发给hadoop02和hadoop03节点,这里使用Linux远程命令进行分发。 #远程分发配置文件 \[hadoop@hadoop01 app\]$scp -r kafka_2.13-3.5.0 hadoop@hadoop02:/home/hadoop/app/ \[hadoop@hadoop01 app\]$scp -r kafka_2.13-3.5.0 hadoop@hadoop03:/home/hadoop/app/ #创建软连接 \[hadoop@hadoop02 app\]$ ln -s kafka_2.13-3.5.0 kafka \[hadoop@hadoop03 app\]$ ln -s kafka_2.13-3.5.0 kafka ##### **4** .修改**Server** 编号 分别登录hadoop01、hadoop02和hadoop03节点,进入Kafka根目录下的config文件夹中,修改server.properties配置文件中的broker id项。 (1)登录hadoop01节点,修改server.properties配置文件中的broker id项,操作如下所示。 \[hadoop@hadoop01 config\]$ vi server.properties #标识hadoop01节点 broker.id=1 (2)登录hadoop02节点,修改server.properties配置文件中的broker id项,操作如下所示。 \[hadoop@hadoop02 config\]$ vi server.properties #标识hadoop02节点 broker.id=2 (3)登录hadoop03节点,修改server.properties配置文件中的broker id项,操作如下所示。 \[hadoop@hadoop03 config\]$ vi server.properties #标识hadoop03节点 broker.id=3 ##### **5** .启动**Kafka** 集群 Zookeeper管理着Kafka Broker和消费者,同时Kafka将元数据信息保存在Zookeeper中,说明Kafka集群依赖Zookeeper提供协调服务,所以需要先启动Zookeeper集群,然后启动Kafka集群。 (1)启动Zookeeper集群 在所有节点进入 /home/hadoop/app/zookeeper目录,使用bin/zkServer.sh start命令启动Zookeeper集群,具体操作如下所示。 \[hadoop@hadoop01 zookeeper\]$ bin/zkServer.sh start \[hadoop@hadoop02 zookeeper\]$ bin/zkServer.sh start \[hadoop@hadoop03 zookeeper\]$ bin/zkServer.sh start (2)启动Kafka集群 在所有节点进入 /home/hadoop/app/kafka目录,使用bin/kafka-server-start.sh -daemon config/server.properties命令启动Kafka集群,具体操作如下所示。 \[hadoop@hadoop01 kafka\]$ bin/kafka-server-start.sh -daemon config/server.properties \[hadoop@hadoop02 kafka\]$ bin/kafka-server-start.sh -daemon config/server.properties \[hadoop@hadoop03 kafka\]$ bin/kafka-server-start.sh -daemon config/server.properties 分别在hadoop01、hadoop02和hadoop03节点,使用jps命令查看Kafka进程,具体操作如图4-20所示。 ![](https://i-blog.csdnimg.cn/direct/8efc78c8ec8743058755149e6c8ea0bf.png) ##### **6** .**Kafka** 集群测试 Kafka自带有很多种shell脚本供用户使用,包含生产消息、消费消息、Topic管理等功能。接下来利用Kafka shell脚本测试使用Kafka集群。 (1)创建Topic 使用Kafka的bin目录下的kafka-topics.sh脚本,通过create命令创建名为test的Topic,具体操作如下所示。 \[hadoop@hadoop01 kafka\]$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --replication-factor 3 --partitions 3 Created topic test. 上述命令中,--bootstrap-server指定Kafka服务地址;--create 创建 Topic ;--topic指定Topic名称;--replication-factor 指定副本数量;--partitions指定分区个数。 (2)查看Topic列表 通过list命令可以查看到刚刚创建的Topic为test,具体操作如下所示。 \[hadoop@hadoop01 kafka\]$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --list test (3)查看Topic详情 通过describe命令查看Topic内部结构,具体操作如下所示,可以看到 test 有3个副本和3个分区。 \[hadoop@hadoop01 kafka\]$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test Topic: test TopicId: mKRrS3hnSg6_oLgD39o5dg PartitionCount: 3 ReplicationFactor:3 Configs: Topic: test Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1 Topic: test Partition: 1 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2 Topic: test Partition: 2 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 (4)消费者消费Topic 在hadoop01节点上,通过Kafka自带的kafka-console-consumer.sh脚本,开启消费者消费 test中的消息。 \[hadoop@hadoop01 kafka\]$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test (5)生产者向Topic发送消息 在hadoop01节点上,通过Kafka自带的kafka-console-producer.sh脚本,启动生产者给Topic发送消息。如下所示,开启生产者之后,生产者向 test发送了4条消息。 \[hadoop@hadoop01 kafka\]$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test \>kafka \>kafka \>flume \>flume 查看消费者控制台,如果成功消费了4条数据,说明Kafka集群可以正常对消息进行生产和消费。

相关推荐
gQ85v10Db6 小时前
Redis分布式锁进阶第十七篇:微服务分布式锁全局治理 + 跨团队统一规范落地 + 全链路稳定性提升方案
redis·分布式·微服务
gQ85v10Db13 小时前
Redis分布式锁进阶第十八篇:本地缓存+分布式锁双锁架构 + 高并发削峰兜底 + 极致性能无损优化实战
redis·分布式·缓存
小江的记录本13 小时前
【Kafka核心】Kafka高性能的四大核心支柱:零拷贝、批量发送、页缓存、压缩
java·数据库·分布式·后端·缓存·kafka·rabbitmq
gQ85v10Db13 小时前
Redis分布式锁进阶第十四篇:全系列终局架构复盘 + 锁体系统一规范 + 线上全年零事故收官方案
redis·分布式·架构
KmSH8umpK14 小时前
Redis分布式锁进阶第十二篇
数据库·redis·分布式
gQ85v10Db14 小时前
Redis分布式锁进阶第十六篇:番外高阶避坑篇 + 隐性埋点锁故障深挖 + 疑难杂症终极兜底方案
数据库·redis·分布式
KmSH8umpK15 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第九篇
数据库·redis·分布式
gQ85v10Db15 小时前
Redis分布式锁进阶第十五篇:全系列终极收官复盘 + 全站锁规范归档 + 生产零故障长期运维兜底总方案
运维·redis·分布式
_F_y16 小时前
仿RabbitMQ实现消息队列-服务端核心模块实现(5)
分布式·rabbitmq
Lyyaoo.16 小时前
Redis实现分布式锁
数据库·redis·分布式