搭建Kafka集群(CentOS Stream 9)

一、准备工作

  • 虚拟机相关:

    VMware workstation 16:虚拟机 > vmware_177981.zip

    CentOS Stream 9:虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso

    如果操作系统是win11或者win10家庭版,推荐使用VMware workstation 17版本,网盘地址为:虚拟机 > vmware_17。

  • JDK

    jdk1.8:JDK > jdk-8u261-linux-x64.tar.gz

  • Kafka

    Kafka > kafka_2.13-3.9.0.tgz

  • 辅助工具

    MobaXterm:MobaXterm_Portable_v24.0.zip

本文相关资源可以在文末提供的百度网盘资源中下载,除了vmware(你懂的...),以上资源均来源于官网,MobaXterm是便捷式软件,无需安装。

CentOS的安装、虚拟机克隆、集群网络环境配置 可参考 搭建Hadoop3.x完全分布式集群(CentOS 9)安装准备部分。

Zookeeper安装 参考:搭建Zookeeper完全分布式集群

二、搭建完全分布式集群

在进行下面步骤之前,确保已经安装好虚拟机hadoop1、hadoop2、hadoop3,并且已经完成集群的网络环境配置、JDK安装和Zookeeper安装。

1. 安装Kafka

(1)下载安装包(也可直接在文末的网盘中获取)

下载地址: https://kafka.apache.org/downloads.html

版本号说明:

(2)安装Kafka

将Kafka安装包上传至hadoop1虚拟机/software目录,运行下面命令解压安装:

shell 复制代码
tar -xvf /software/kafka_2.13-3.9.0.tgz -C /opt
cd /opt
mv kafka_2.13-3.9.0/ kafka

目录介绍


bin:可执行脚本的目录

config:配置文件的目录

配置环境变量

shell 复制代码
vi /etc/profile

添加如下内容:

shell 复制代码
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$JAVA_HOME/bin:$KAFKA_HOME/bin

运行source /etc/profile更新环境变量

2. 修改kafka配置信息

shell 复制代码
cd /opt/kafka
mkdir logs
vi config/server.properties

修改相应的配置项

复制代码
#broker 的全局唯一编号,不能重复
broker.id=0
#kafka 运行日志存放的路径
log.dirs=/opt/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181

3. 分发Kafka和环境变量

shell 复制代码
scp -r /opt/kafka root@hadoop2:/opt
scp -r /opt/kafka root@hadoop3:/opt

scp /etc/profile root@hadoop2:/etc
scp /etc/profile root@hadoop3:/etc

4. 修改broker.id

分别将虚拟机hadoop2和hadoop3的broker.id修改为1和2

5. 启动Kafka集群

请确保已经启动Zookeepr集群

在虚拟机Hadoop1上执行以下命令启动kafka Broker。

shell 复制代码
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
ssh hadoop2 "source /etc/profile && kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
ssh hadoop3 "source /etc/profile && kafka-server-start.sh -daemon /opt/kafka/config/server.properties"

使用jps命令查看进程

6. 测试

  • 创建Topic
shell 复制代码
kafka-topics.sh --create --topic test-topic --bootstrap-server hadoop1:9092 --partitions 3 --replication-factor 2
kafka-topics.sh --describe --topic test-topic --bootstrap-server hadoop1:9092
  • 查看所有topic
shell 复制代码
kafka-topics.sh --bootstrap-server hadoop2:9092 --list 
  • 发送消息
shell 复制代码
kafka-console-producer.sh --bootstrap-server hadoop3:9092 --topic first
  • 消费消息
shell 复制代码
kafka-console-consumer.sh --bootstrap-server hadoop1:9092 --from-beginning --topic first

7. 集群服务管理脚本

在虚拟机hadoop1上执行下面的命令,编写zookeeper集群服务管理脚本

shell 复制代码
cd /opt/kafka/bin
touch xkafkaServer.sh
chmod +x xkafkaServer.sh
vi xkafkaServer.sh

编辑如下脚本内容

shell 复制代码
#!/bin/bash
if [ $# -eq 0 ]; then
    echo "xkafkaServer.sh {start | stop}"
    exit
fi
for host in hadoop1 hadoop2 hadoop3
    do
            case $1 in
            "start"){
                    echo "                                               "
                    echo "--------------- 启 动 kafka ---------------"
                    echo "------------ $host kafka -----------"
                    ssh $host "source /etc/profile && kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
            };;
            "stop"){
                    echo "                                               "
                    echo "--------------- 关 闭 kafka ---------------"
                    echo "------------ $host kafka -----------"
                    ssh $host "source /etc/profile && kafka-server-stop.sh"
            };;
            esac
    done

可以运行xkafkaServer.sh start 启动Kafka集群,运行xkafkaServer.sh stop停止Kafka集群。

附、网盘资源

链接:https://pan.baidu.com/s/1MSUdwbPArIAglQTDRhOjrg?pwd=jiau

提取码:jiau

相关推荐
森语林溪7 小时前
大数据环境搭建从零开始(十四)CentOS 7 系统更新源更换详解:阿里云镜像源配置完整指南
大数据·linux·运维·阿里云·centos
教练、我想打篮球8 小时前
05 kafka 如何存储较大数据记录
java·kafka·record
杂家8 小时前
Zookeeper完全分布式部署(超详细)
大数据·分布式·zookeeper
csdn_aspnet9 小时前
如何在 Mac、Ubuntu、CentOS、Windows 上安装 MySQL 客户端
linux·windows·mysql·macos·centos
guygg8810 小时前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos
csdn_aspnet10 小时前
CentOS 7 上安装 MySQL 8.0
linux·mysql·centos
森语林溪12 小时前
大数据环境搭建从零开始(十七):JDK 17 安装与配置完整指南
java·大数据·开发语言·centos·vmware·软件需求·虚拟机
zdslovezy1 天前
CentOS 系统升级 OpenSSH 和 OpenSSL 的完整方案
linux·运维·centos
IT 小阿姨(数据库)1 天前
PostgreSQL 之上的开源时序数据库 TimescaleDB 详解
运维·数据库·sql·postgresql·开源·centos·时序数据库
一叶知秋yyds2 天前
Centos 安装 Docker教程
linux·docker·centos