kafka在centos上的配置步骤是什么
导读:Kafka在CentOS上的配置步骤 1. 环境准备:安装Java Kafka依赖Java运行环境(JRE/JDK),需先安装OpenJDK 1.8及以上版本: sudo yum install java-1.8.0-openjdk-dev...
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.properties
nohup
: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 Kafka
Kafka
,说明启动成功。
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:9092
Hello 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 kafka
systemctl 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
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: kafka在centos上的配置步骤是什么
本文地址: https://pptw.com/jishu/721242.html