一、前置准备
安装Java环境
Kafka依赖Java运行,推荐使用OpenJDK 8或11(更高版本需确认Kafka兼容性)。
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version  # 验证安装(需显示Java版本信息)
安装Zookeeper
Kafka通过Zookeeper实现集群协调,需先安装并启动Zookeeper。
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz
sudo mv apache-zookeeper-3.7.0 /opt/zookeeper
sudo mkdir -p /opt/zookeeper/data
配置Zookeeper(编辑/opt/zookeeper/conf/zoo.cfg):
tickTime=2000
dataDir=/opt/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
启动Zookeeper:
/opt/zookeeper/bin/zkServer.sh start
netstat -tulnp | grep 2181  # 验证端口是否监听
二、Kafka精准配置
下载并解压Kafka
从Apache官网下载最新稳定版本(如3.5.2),解压至指定目录:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.13-3.5.2.tgz
tar -xzvf kafka_2.13-3.5.2.tgz
sudo mv kafka_2.13-3.5.2 /opt/kafka
配置Kafka核心参数(server.properties)
编辑/opt/kafka/config/server.properties,关键参数说明及示例:
broker.id=0(集群中每个broker需唯一);listeners=PLAINTEXT://your_server_ip:9092(本地测试可改为localhost);advertised.listeners=PLAINTEXT://your_server_ip:9092(集群节点间需能访问);log.dirs=/opt/kafka/logs(需提前创建并授权:sudo mkdir -p /opt/kafka/logs && sudo chown -R kafka:kafka /opt/kafka);zookeeper.connect=localhost:2181(集群中需列出所有zk节点,如host1:2181,host2:2181);num.partitions=3(根据并发需求设置,建议与消费者线程数匹配)、default.replication.factor=1(测试环境设为1,生产环境建议≥3);log.retention.hours=168(保留7天,可根据存储空间调整)、log.retention.bytes=1073741824(单分区最大1GB);num.io.threads=8(CPU核心数的50%,处理磁盘IO)、socket.send.buffer.bytes=102400(发送缓冲区大小)、socket.receive.buffer.bytes=102400(接收缓冲区大小)。创建Kafka用户及授权
为Kafka创建专用用户并设置目录权限:
sudo groupadd kafka
sudo useradd -g kafka kafka
sudo chown -R kafka:kafka /opt/kafka
sudo chmod -R 750 /opt/kafka
三、启动与验证
启动Kafka服务
以后台模式启动Kafka:
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
验证Kafka是否运行:
netstat -tulnp | grep 9092  # 应显示Kafka监听9092端口
测试Topic功能
/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test_topic
/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
四、环境变量配置(可选但推荐)
将Kafka路径添加至系统环境变量,方便全局调用:
echo 'export KAFKA_HOME=/opt/kafka' >> ~/.bashrc
echo 'export PATH=$PATH:$KAFKA_HOME/bin' >> ~/.bashrc
source ~/.bashrc
验证命令:kafka-topics --version(应显示Kafka版本信息)。
五、关键注意事项
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp
sudo ufw reload
PLAINTEXT协议,生产环境建议启用SSL/TLS加密(配置listeners=SSL://your_server_ip:9092及证书)。kafka_server_开头的JMX指标),定期清理日志(log.retention参数控制)。