在CentOS上稳定运行Kafka需要经过一系列步骤,包括安装必要的软件、配置Kafka和Zookeeper、启动服务以及进行性能调优。以下是一个详细的指南:
首先,确保你的CentOS系统上安装了JDK。你可以从Oracle官网下载并安装JDK 8。
# 卸载旧版本JDK yum list java-1.8* yum remove java-1.8* # 安装JDK 8 yum install java-1.8.0-openjdk-devel Kafka依赖于Zookeeper,因此需要先安装Zookeeper。
# 下载Zookeeper wget https://downloads.apache.org/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz # 解压Zookeeper tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz mv apache-zookeeper-3.8.1-bin zookeeper # 配置Zookeeper mkdir -p /data/zookeeper/data mkdir -p /data/zookeeper/logs # 修改Zookeeper配置文件 cp conf/zoo_sample.cfg conf/zoo.cfg vi conf/zoo.cfg # 修改以下配置 dataDir=/data/zookeeper/data dataLogDir=/data/zookeeper/logs clientPort=2181 # 启动Zookeeper ./bin/zkServer.sh start 下载并解压Kafka安装包。
# 下载Kafka wget https://downloads.apache.org/kafka/2.1.0/kafka_2.11-2.1.0.tgz # 解压Kafka tar -zxvf kafka_2.11-2.1.0.tgz mv kafka_2.11-2.1.0 kafka # 创建Kafka日志目录 mkdir -p /data/kafka/logs 编辑Kafka的配置文件server.properties。
# 复制配置文件 cp kafka/config/server.properties kafka/config/server.properties.bak # 修改配置文件 vi kafka/config/server.properties # 修改以下配置 broker.id=0 listeners=PLAINTEXT://:9092 advertised.listeners=PLAINTEXT://your_server_ip:9092 log.dirs=/data/kafka/logs zookeeper.connect=localhost:2181 启动Kafka服务并设置为后台运行。
# 启动Kafka ./bin/kafka-server-start.sh -daemon kafka/config/server.properties 使用以下命令检查Kafka是否启动成功。
# 查看Kafka进程 ps -ef | grep kafka # 创建测试Topic ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test # 生产消息 ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test # 消费消息 ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 为了确保Kafka在系统重启后自动启动,需要创建systemd服务。
# 创建Kafka服务文件 vi /etc/systemd/system/kafka.service # 添加以下内容 [Unit] Description=Apache Kafka server (broker) After=network.target zookeeper.target [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 ExecReload=/bin/kill -HUP $MAINPID KillMode=none Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target # 重新加载systemd配置 systemctl daemon-reload # 启用并启动Kafka服务 systemctl enable kafka systemctl start kafka 为了确保Kafka的高性能和稳定性,可以进行一些性能调优。
batch.size、linger.ms、fetch.max.bytes等参数。通过以上步骤,你可以在CentOS上稳定运行Kafka,并根据需要进行性能调优。