Apache Kafka與CentOS的協同工作可以通過以下步驟完成:
安裝JDK: Kafka需要Java運行環境,首先需要安裝JDK??梢允褂靡韵旅钤贑entOS上安裝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。