Linux 单机部署 Kafka 详细教程(CentOS 7+)

系列博客专栏:

一、环境准备

1. 操作系统要求

Kafka 可以在多种 Linux 发行版上运行,本文以 CentOS 7 为例,其他发行版步骤类似,只需调整包管理命令。

2. Java 环境要求

Kafka 基于 Java 开发,需安装 JDK 8 或以上版本

bash 复制代码
java -version

若已安装,将输出示例:

复制代码
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)

二、安装 JDK

1. 下载 JDK

bash 复制代码
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz

2. 解压安装包

bash 复制代码
mkdir -p /usr/local/java
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/java

3. 配置环境变量

/etc/profile 末尾追加:

bash 复制代码
export JAVA_HOME=/usr/local/java/jdk1.8.0_41
export PATH=$PATH:$JAVA_HOME/bin

使配置生效:

bash 复制代码
source /etc/profile

4. 验证安装

bash 复制代码
java -version

三、安装并配置 ZooKeeper

Kafka 依赖 ZooKeeper 管理集群,建议独立安装。

1. 下载 ZooKeeper

bash 复制代码
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

2. 解压安装包

bash 复制代码
mkdir -p /usr/local/zookeeper
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/zookeeper

3. 配置 ZooKeeper

(1) 创建数据与日志目录
bash 复制代码
mkdir -p /usr/local/zookeeper/data
mkdir -p /usr/local/zookeeper/logs
(2) 修改配置文件
bash 复制代码
cd /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/conf
cp zoo_sample.cfg zoo.cfg

编辑 zoo.cfg

bash 复制代码
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
(3) 集群配置(可选)

单机可跳过。集群模式需添加:

复制代码
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888

并在每个节点的 dataDir 中创建 myid

bash 复制代码
echo 1 > /usr/local/zookeeper/data/myid
(4) 配置环境变量
bash 复制代码
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.8.4-bin' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile

4. 启动与验证

bash 复制代码
zkServer.sh start
zkServer.sh status   # 单机显示 Mode: standalone
zkServer.sh stop

四、安装 Kafka

1. 下载 Kafka

bash 复制代码
wget https://archive.apache.org/dist/kafka/3.6.2/kafka_2.12-3.6.2.tgz

2. 解压安装包

bash 复制代码
mkdir -p /usr/local/kafka
tar -zxvf kafka_2.12-3.6.2.tgz -C /usr/local/kafka

3. 配置 Kafka

编辑 /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

bash 复制代码
broker.id=0
listeners=PLAINTEXT://your_ip:9092
log.dirs=/usr/local/kafka/kafka-logs
zookeeper.connect=localhost:2181

创建日志目录:

bash 复制代码
mkdir -p /usr/local/kafka/kafka-logs

五、启动 Kafka 服务

1. 启动顺序

确保 ZooKeeper 已启动:

bash 复制代码
zkServer.sh start

启动 Kafka:

bash 复制代码
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

2. 验证进程

bash 复制代码
jps

输出应包含:

复制代码
QuorumPeerMain
Kafka

六、停止服务

bash 复制代码
# 停止 Kafka
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-stop.sh

# 停止 ZooKeeper
zkServer.sh stop

七、测试 Kafka

1. 创建主题

bash 复制代码
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh \
  --create \
  --topic test-topic \
  --bootstrap-server localhost:9092 \
  --replication-factor 1 \
  --partitions 1

2. 查看主题列表

bash 复制代码
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

3. 发送消息

bash 复制代码
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test-topic

输入内容后按 Enter 发送。

4. 消费消息(新终端)

bash 复制代码
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test-topic \
  --from-beginning

八、总结

通过以上步骤,已在 Linux 系统成功独立安装配置了 ZooKeeperKafka

后续可根据需求扩展为集群、调整性能参数或集成其他组件。

祝你顺利搭建 Kafka 消息系统!