Apache Kafka与CentOS的协同工作可以通过以下步骤完成:
安装JDK: Kafka需要Java运行环境,首先需要安装JDK。可以使用以下命令在CentOS上安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel
安装完成后,配置Java环境变量:
echo "JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /etc/profile
source /etc/profile
java -version
下载和安装Kafka: 从Apache Kafka官网下载最新版本的Kafka安装包,例如Kafka 2.13.0:
wget https://downloads.apache.org/kafka/2.13.0/kafka_2.13-2.13.0.tgz
tar -xzvf kafka_2.13-2.13.0.tgz
cd kafka_2.13-2.13.0
配置Kafka:
进入Kafka的config目录,编辑server.properties
文件:
broker.id=0
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
log.dirs=/data/kafka/logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
sasl.enabled.mechanisms=PLAIN
auto.create.topics.enable=false
num.network.threads=3
num.io.threads=8
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.retention.bytes=1073741824
启动Kafka服务: 在Kafka的bin目录下,使用以下命令启动Kafka服务:
./kafka-server-start.sh ../config/server.properties
设置开机自启动:
sudo vi /etc/rc.d/init.d/kafka
添加以下内容并赋予执行权限:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
case "$1" in
start)
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
;;
stop)
/usr/local/kafka/bin/kafka-server-stop.sh
;;
status)
jps
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
注册为系统服务并设置为开机自启动:
sudo chkconfig --add kafka
sudo chkconfig kafka on
验证配置: 创建一个Topic进行测试:
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
使用kafka-console-producer.sh
和kafka-console-consumer.sh
命令进行消息发送和接收测试:
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
通过以上步骤,可以在CentOS上成功安装、配置和运行Kafka。