3. 环境搭建:安装Java/Python运行环境、安装Kafka、启动Zookeeper、验证Kafka集群状态

说实话,搭建环境这事儿,看着简单,但坑是真不少。

我见过太多人在这一步卡住,然后怀疑人生。

今天咱们就把这套环境捋顺了。你跟着我走一遍,保证稳。

3.1 安装Java运行环境

Kafka是用Java写的,所以Java环境是必须的。

我个人习惯用JDK 8或JDK 11。这两个版本最稳,社区支持也最好。

核心要求:Kafka 2.x 版本推荐 JDK 8,Kafka 3.x 版本推荐 JDK 11。

安装步骤很简单,就三步:

  1. 下载JDK:去Oracle官网或者用OpenJDK。我一般用OpenJDK,省心。
  2. 解压安装:放到 /usr/local/java/ 目录下。
  3. 配置环境变量:编辑 ~/.bashrc/etc/profile
# 编辑配置文件
vim ~/.bashrc

# 添加以下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH

# 使配置生效
source ~/.bashrc

# 验证安装
java -version

看到版本号输出,就说明Java装好了。

小技巧:我曾经遇到过环境变量配了但死活不生效的情况。后来发现是 source 之后没重启终端。嗯,记得重新打开一个窗口再试。

3.2 安装Python运行环境

Python主要是用来写生产者和消费者的测试脚本。

我建议用Python 3.6以上版本。Python 2已经退休了,别再用它了。

安装方式有两种:

  • 直接安装sudo apt-get install python3(Ubuntu)或 brew install python3(Mac)
  • 使用Anaconda:适合需要管理多个Python版本的同学
# 验证Python版本
python3 --version

# 安装kafka-python库(后面会用到)
pip3 install kafka-python

注意:如果你用的是Mac M1/M2芯片,安装某些Python库可能会报错。别慌,用 arch -arm64 brew 重新安装就行。我踩过这个坑。

3.3 安装Kafka

Kafka的安装,说白了就是下载、解压、配置。

我个人习惯把Kafka放在 /opt/kafka/ 目录下。

# 下载Kafka(以2.8.0版本为例)
wget https://archive.apache.org/dist/kafka/2.8.0/kafka_2.13-2.8.0.tgz

# 解压
tar -xzf kafka_2.13-2.8.0.tgz
mv kafka_2.13-2.8.0 /opt/kafka

# 进入目录
cd /opt/kafka

解压后,你会看到这些关键目录:

目录/文件 作用
bin/ 启动脚本,包括Kafka和Zookeeper的启动命令
config/ 配置文件,核心是 server.properties
libs/ 依赖的JAR包
logs/ 运行日志(首次启动后生成)

重点:Kafka自带了Zookeeper,所以不需要单独下载Zookeeper。这一点很多人不知道。

3.4 启动Zookeeper

Kafka依赖Zookeeper来管理集群元数据。

你想想看,如果没有Zookeeper,Kafka怎么知道哪个Broker活着、哪个挂了?

启动Zookeeper很简单:

# 启动Zookeeper(使用Kafka自带的脚本)
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties &

# 查看是否启动成功
netstat -an | grep 2181

Zookeeper默认监听2181端口。看到这个端口在监听,就说明启动成功了。

避坑指南:我曾经在启动Zookeeper时忘了加 &,结果终端一关,Zookeeper就停了。记得用 & 让它后台运行,或者用 nohup

3.5 启动Kafka Broker

Zookeeper跑起来之后,就可以启动Kafka了。

# 启动Kafka Broker
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &

# 查看是否启动成功
netstat -an | grep 9092

Kafka默认监听9092端口。

这里有个细节:server.properties 里有个关键配置叫 broker.id。如果是单机部署,保持默认的0就行。如果是集群,每个Broker的ID必须唯一。

注意:启动Kafka之前,一定要确保Zookeeper已经启动。否则Kafka会报连接拒绝的错误。我刚开始学的时候,经常搞反顺序。

3.6 验证Kafka集群状态

环境搭好了,怎么知道它是不是真的能跑?

咱们用几个命令来验证一下。

3.6.1 创建Topic

# 创建一个名为test的Topic,1个分区,1个副本
/opt/kafka/bin/kafka-topics.sh --create \
  --bootstrap-server localhost:9092 \
  --replication-factor 1 \
  --partitions 1 \
  --topic test

看到 Created topic test 就说明成功了。

3.6.2 查看Topic列表

# 列出所有Topic
/opt/kafka/bin/kafka-topics.sh --list \
  --bootstrap-server localhost:9092

应该能看到 test 这个Topic。

3.6.3 发送消息

# 启动生产者,发送消息
/opt/kafka/bin/kafka-console-producer.sh \
  --broker-list localhost:9092 \
  --topic test

# 输入消息内容,比如:
> hello kafka
> this is a test message

3.6.4 消费消息

# 启动消费者,接收消息
/opt/kafka/bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --from-beginning

如果能看到刚才发送的消息,恭喜你——整个环境搭建成功了!

验证总结:

  • Zookeeper监听2181端口 ✅
  • Kafka监听9092端口 ✅
  • 能创建Topic ✅
  • 能发送和接收消息 ✅

四个都通过,环境就稳了。

3.7 本章知识体系

下面这张图,帮你把整个环境搭建的脉络理清楚:

环境搭建知识体系 基础运行环境 核心组件安装 集群状态验证 JDK 8/11 Python 3.6+ Zookeeper Kafka Broker 创建Topic 收发消息 核心流程 安装JDK → 安装Python → 解压Kafka → 启动Zookeeper → 启动Kafka → 验证 顺序不能乱,尤其是Zookeeper必须在Kafka之前启动

环境搭建这块,说白了就是按部就班。顺序对了,基本不会出问题。

如果遇到问题,先检查端口是否被占用,再检查配置文件路径。90%的问题都出在这两个地方。


专注资料整理