在CentOS上部署Apache Kafka涉及多個步驟,包括安裝Java、下載Kafka、配置Kafka以及啟動Kafka服務。以下是一個詳細的指南:
Kafka需要Java運行環境,因此首先需要安裝Java。
sudo yum install java-1.8.0-openjdk-devel
驗證Java安裝:
java -version
從Apache Kafka官方網站下載最新版本的Kafka。
wget https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
解壓下載的文件:
tar -xzf kafka_2.13-3.2.0.tgz
mv kafka_2.13-3.2.0 /opt/kafka
進入Kafka目錄并進行基本配置。
cd /opt/kafka/config
編輯server.properties
文件,進行基本配置。
# The directory under which the log files will be stored.
log.dirs=/tmp/kafka-logs
# The number of partitions for the default topic.
num.partitions=1
# The default number of partitions per topic.
default.replication.factor=1
# The expected number of connections to the broker.
listeners=PLAINTEXT://:9092
# The address the broker will bind to and publish to.
advertised.listeners=PLAINTEXT://your_server_ip:9092
# The port the listener will use for incoming connections.
port=9092
將your_server_ip
替換為你的服務器IP地址。
編輯zookeeper.properties
文件,進行基本配置。
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0
Kafka依賴Zookeeper,因此需要先啟動Zookeeper。
cd /opt/kafka/bin
./zookeeper-server-start.sh ../config/zookeeper.properties
在另一個終端窗口中啟動Kafka服務器。
./kafka-server-start.sh ../config/server.properties
創建一個Kafka主題來測試。
./kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
發送和接收消息以驗證Kafka是否正常工作。
./kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在提示符下輸入消息并按回車鍵發送。
./kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
你應該能夠看到之前發送的消息。
停止Kafka服務器:
./kafka-server-stop.sh
停止Zookeeper服務器:
./zookeeper-server-stop.sh
確保防火墻允許Kafka端口(默認是9092)的流量。
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
如果SELinux啟用,可能需要配置它以允許Kafka運行。
sudo setsebool -P httpd_can_network_connect 1
完成以上步驟后,你應該能夠在CentOS上成功部署Apache Kafka。