1. kafka分布式环境搭建

一. 集群规划
主机名 IP 组件
hadoop1 192.168.205.154 zookeeper, kafka
hadoop2 192.168.205.155 kafka
hadoop3 192.168.205.156 kafka
bash 复制代码
kafka版本:3.6.0
二. 集群部署
  1. 安装JDK,具体安装过程此处不赘述。

  2. 安装zookeeper,本次采用单机模式部署在hadoop1,具体安装过程此处不赘述。

  3. 下载kafka安装包,并上传到对应目录下

    bash 复制代码
    [root@hadoop1 opt]# tar xf kafka_2.12-3.6.0.tgz
    [root@hadoop1 opt]# mv kafka_2.12-3.6.0 kafka-3.6.0/
  4. 修改配置文件config/server.properties

    bash 复制代码
    # 每台机器的id必须保持不一样
    broker.id=1
    # IP为当前主机的IP地址
    advertised.listeners=PLAINTEXT://192.168.205.154:9092
    # 日志目录
    log.dirs=/opt/kafka-3.6.0/kafka-logs
    # zookeeper连接地址
    zookeeper.connect=192.168.205.154:2181
  5. 将配置好的安装包分发到两外两台主机上

    bash 复制代码
    [root@hadoop1 ~]# scp  -r /opt/kafka-3.6.0/  root@hadoop2:/opt
    [root@hadoop1 ~]# scp  -r /opt/kafka-3.6.0/  root@hadoop3:/opt
  6. 修改两外两台主机上的配置

    bash 复制代码
    # hadoop2
    broker.id=2
    advertised.listeners=PLAINTEXT://192.168.205.155:9092
    # hadoop3
    broker.id=3
    advertised.listeners=PLAINTEXT://192.168.205.156:9092
  7. 启动zookeeper和kafka

    bash 复制代码
    # 启动zookeeper
    [root@hadoop1 zookeeper-3.9.2]# ./bin/zkServer.sh  start
    # 启动kafka
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-server-start.sh -daemon config/server.properties
    [root@hadoop2 kafka-3.6.0]# ./bin/kafka-server-start.sh -daemon config/server.properties
    [root@hadoop3 kafka-3.6.0]# ./bin/kafka-server-start.sh -daemon config/server.properties
三. 集群测试
  1. 查看所有topic

    bash 复制代码
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-topics.sh  --bootstrap-server  192.168.205.154:9092   --list
  2. 创建topic

    bash 复制代码
    # 分区数为1,副本数为3
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-topics.sh  --bootstrap-server  192.168.205.154:9092   --create --topic first  --partitions 1 --replication-factor 3
    Created topic first.
  3. 查看topic详细信息

    bash 复制代码
    # 查看topic详细信息
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-topics.sh  --bootstrap-server  192.168.205.154:9092 --describe --topic first
    Topic: first    TopicId: Sj4KtQ8gRk-NCtHL7ONpBg PartitionCount: 1       ReplicationFactor: 3    Configs:
            Topic: first    Partition: 0    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
  4. 修改topic分区数

    bash 复制代码
    # 将topic的分区数修改为3
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-topics.sh  --bootstrap-server  192.168.205.154:9092 --alter --topic first --partitions 3
  5. 启动消费者

    bash 复制代码
    [root@hadoop2 kafka-3.6.0]# ./bin/kafka-console-consumer.sh  --bootstrap-server 192.168.205.154:9092 --topic first  --from-beginning
  6. 启动生产者

    bash 复制代码
    [root@hadoop1 kafka-3.6.0]# ./bin/kafka-console-producer.sh --bootstrap-server  192.168.205.154:9092  --topic first
相关推荐
会周易的程序员4 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
青山木17 小时前
RocketMQ 入门到原理(一):整体架构与消息的生命周期
java·分布式·后端·中间件·架构·rocketmq
szephyr20 小时前
消息队列入门:RabbitMQ 和 Kafka 到底怎么选,什么时候不该用
后端·架构·kafka·消息队列·rabbitmq
lisanmengmeng1 天前
分布式追踪与监控:Skywalking介绍(一)
分布式·skywalking
HanhahnaH1 天前
Redis单线程和Tair多线程架构设计对比
分布式·缓存
rustfs1 天前
MinIO 国产开源平替正式 GA
分布式·docker·云原生·rust
螺蛳粉 螺蛳粉1 天前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?
数据库·分布式·mysql
孙启超1 天前
【AI开发之Rust】第 7 课:错误处理 —— panic、Result 与 `?`
人工智能·分布式·后端·爬虫·spring cloud·架构·rust
九皇叔叔2 天前
Seata——把分布式事务理论落到 Java 微服务实践
分布式·分布式事务·cap·base·saga