在CentOS上正确设置Kafka需要经过一系列步骤,包括安装必要的软件、配置环境、启动服务以及进行性能优化等。以下是详细的步骤指南:
Kafka是用Java编写的,因此在安装Kafka之前,需要先安装Java Development Kit (JDK)。
sudo yum install java-1.8.0-openjdk-devel java -version 从Apache Kafka官网下载Kafka的二进制文件,然后解压到指定目录。
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz tar -xzf kafka_2.12-3.5.2.tgz cd kafka_2.12-3.5.2 Kafka依赖于Zookeeper,因此需要先配置和启动Zookeeper。
编辑Zookeeper配置文件 /config/zoo.cfg:
tickTime=2000 dataDir=/tmp/zookeeper clientPort=2181 启动Zookeeper:
./bin/zookeeper-server-start.sh ./config/zoo.cfg 编辑Kafka配置文件 /config/server.properties:
broker.id=0 listeners=SASL_PLAINTEXT://:9092 security.inter.broker.protocol=SASL_PLAINTEXT sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN log.dirs=/tmp/kafka-logs zookeeper.connect=localhost:2181 创建Kafka目录:
mkdir -p /tmp/kafka-logs 使用以下命令启动Kafka服务:
./bin/kafka-server-start.sh ./config/server.properties 创建Kafka服务文件 /etc/systemd/system/kafka.service:
[Unit] Description=Apache Kafka server After=network.target zookeeper.service [Service] Type=simple User=kafka Group=kafka ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/local/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=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zoo.cfg ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target 启用并启动服务:
systemctl daemon-reload systemctl enable zookeeper systemctl enable kafka systemctl start zookeeper systemctl start kafka 如果需要从外部访问Kafka,需要开放相关端口:
firewall-cmd --zone=public --add-port=2181/tcp --permanent firewall-cmd --zone=public --add-port=9092/tcp --permanent firewall-cmd --reload 对于生产环境,建议配置监控和日志管理工具,如Kafka Manager或Prometheus结合Grafana,以监控Kafka集群的健康状况和性能指标。
TCP网络优化:
sudo sysctl -w net.core.rmem_default=262144 sudo sysctl -w net.core.rmem_max=2097152 sudo sysctl -w net.core.wmem_default=262144 sudo sysctl -w net.core.wmem_max=2097152 进程级资源限制优化:
sudo vi /etc/security/limits.conf 添加或修改以下行:
* soft nofile 655360 * hard nofile 655360 * soft nproc 8096 * hard nproc 8096 对于生产环境,需要定期备份Kafka数据,并制定灾难恢复计划。
通过以上步骤,您可以在CentOS上成功安装和配置Kafka,并确保其稳定运行。