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。
安装步骤很简单,就三步:
- 下载JDK:去Oracle官网或者用OpenJDK。我一般用OpenJDK,省心。
- 解压安装:放到
/usr/local/java/目录下。 - 配置环境变量:编辑
~/.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 本章知识体系
下面这张图,帮你把整个环境搭建的脉络理清楚:
环境搭建这块,说白了就是按部就班。顺序对了,基本不会出问题。
如果遇到问题,先检查端口是否被占用,再检查配置文件路径。90%的问题都出在这两个地方。