阅读量:0
Kafka在CentOS上的配置步骤
1. 环境准备:安装Java
Kafka依赖Java运行环境(JRE/JDK),需先安装OpenJDK 1.8及以上版本:
sudo yum install java-1.8.0-openjdk-devel -y
# 验证Java安装
java -version
确保输出显示Java版本信息,否则Kafka无法启动。
2. 下载并解压Kafka
从Apache Kafka官网下载最新稳定版本(如3.5.2),解压至指定目录(如/opt/kafka):
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
建议将Kafka安装至系统目录(如/opt),便于后续管理。
3. 配置Zookeeper(Kafka依赖组件)
Kafka通过Zookeeper实现集群管理和元数据存储,需先配置Zookeeper:
- 进入Kafka配置目录:
cd /opt/kafka/config - 编辑
zookeeper.properties文件,设置数据目录和客户端端口:dataDir=/var/lib/zookeeper # Zookeeper数据存储路径 clientPort=2181 # Zookeeper监听端口 - 启动Zookeeper服务(前台模式,生产环境建议用
nohup或systemd):
若需后台运行,可添加/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.propertiesnohup:nohup /opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &
4. 配置Kafka Broker
编辑Kafka主配置文件server.properties,设置关键参数:
# Broker唯一标识(集群中每个broker需不同)
broker.id=0
# 监听地址(本地测试可设为localhost,生产环境需设为服务器IP)
listeners=PLAINTEXT://your_server_ip:9092
# 对外暴露的地址(客户端连接用,生产环境需设为服务器IP)
advertised.listeners=PLAINTEXT://your_server_ip:9092
# 日志存储目录(需提前创建)
log.dirs=/var/lib/kafka-logs
# Zookeeper连接字符串(集群需列出所有节点)
zookeeper.connect=localhost:2181
注意:
- 若服务器有防火墙,需开放
9092(Kafka)和2181(Zookeeper)端口; - 生产环境建议关闭
PLAINTEXT协议,启用SASL/SSL加密(需额外配置)。
5. 启动Kafka服务
- 后台启动Kafka(推荐):
nohup /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /dev/null 2>&1 & - 查看Kafka进程是否运行:
若输出jps | grep KafkaKafka,说明启动成功。
6. 验证Kafka功能
- 创建测试Topic(1个分区、1个副本):
/opt/kafka/bin/kafka-topics.sh --create --topic test_topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 - 查看Topic列表:
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092 - 发送测试消息(生产者):
输入消息(如/opt/kafka/bin/kafka-console-producer.sh --topic test_topic --bootstrap-server localhost:9092Hello Kafka)并按回车。 - 接收测试消息(消费者):
应能看到生产者发送的消息,说明Kafka配置成功。/opt/kafka/bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server localhost:9092
7. 可选:设置开机自启
为避免服务器重启后Kafka和Zookeeper手动启动,可创建systemd服务:
- Kafka服务文件(
/etc/systemd/system/kafka.service):[Unit] Description=Apache Kafka Server After=network.target zookeeper.service [Service] Type=simple User=kafka Group=kafka ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties ExecStop=/opt/kafka/bin/kafka-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target - Zookeeper服务文件(
/etc/systemd/system/zookeeper.service):[Unit] Description=Apache Zookeeper After=network.target [Service] Type=simple User=zookeeper Group=zookeeper ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target - 启用并启动服务:
通过sudo systemctl daemon-reload sudo systemctl enable zookeeper kafka sudo systemctl start zookeeper kafkasystemctl status kafka可查看Kafka服务状态。
注意事项
- 生产环境需调整以下参数以提高可靠性:
num.partitions:增加默认分区数(如8);default.replication.factor:设置副本因子(如3,需与broker数量匹配);min.insync.replicas:最小同步副本数(如2,确保数据一致性);- 日志保留时间(
log.retention.hours=168,即7天)。
- 防火墙配置:若需外部访问,需开放
9092(Kafka)和2181(Zookeeper)端口:sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent sudo firewall-cmd --reload - SELinux配置:若启用SELinux,需允许Kafka访问网络:
sudo setsebool -P httpd_can_network_connect 1
以上就是关于“kafka在centos上的配置步骤是什么”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm