在Ubuntu上配置Kafka集群涉及多个步骤,包括安装Java环境、Zookeeper、Kafka,配置Kafka Broker,以及启动和验证Kafka集群。以下是详细的步骤:
首先,确保你的系统上已经安装了Java。你可以使用以下命令来安装OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk -y
安装完成后,验证Java是否安装成功:
java -version
Kafka需要Zookeeper来管理集群的元数据。你可以从Apache官网下载Zookeeper的安装包,并解压到指定目录。
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/zookeeper-3.8.0.tar.gz
tar -xzvf zookeeper-3.8.0.tar.gz
sudo mv zookeeper-3.8.0 /usr/local/zookeeper
配置Zookeeper:
sudo cp /usr/local/zookeeper/conf/zoo.cfg /usr/local/zookeeper/conf/zoo.cfg.samples
sudo vi /usr/local/zookeeper/conf/zoo.cfg
在 zoo.cfg
文件中,确保以下配置正确:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
启动Zookeeper:
sudo /usr/local/zookeeper/bin/zkServer.sh start
验证Zookeeper是否启动成功:
netstat -nap | grep 2181
下载Kafka的安装包,并解压到你想要的目录。例如,下载Kafka 3.5.2版本:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka
配置Kafka:
cd /usr/local/kafka
sudo cp config/server.properties config/server.properties.samples
sudo vi config/server.properties
在 server.properties
文件中,确保以下配置正确:
broker.id=0
listeners=PLAINTEXT://:9092
zookeeper.connect=localhost:2181
log.dirs=/tmp/kafka-logs
启动Kafka服务器:
sudo /usr/local/kafka/bin/kafka-server-start.sh config/server.properties
验证Kafka是否启动成功:
netstat -tulnp | grep 9092
你应该能看到类似以下的输出,表示Kafka服务器正在监听9092端口:
tcp6 0 0 :::9092 :::* LISTEN 1234 /usr/local/kafka/bin/java -Djava.security.egd=file:/dev/./urandom -jar /usr/local/kafka/bin/kafka-server-start.sh ...
创建一个测试Topic:
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
列出所有Topic以确认新Topic已创建:
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
启动生产者发送消息:
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
在生产者终端输入消息后按Ctrl+D结束输入。
消费者接收消息:
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
在消费者终端中,你应该能看到从生产者发送的消息。
如果你需要部署一个Kafka集群,需要在多台服务器上重复上述步骤,并确保每台服务器的 broker.id
不同。同时,所有机器的 zookeeper.connect
配置应指向集群中其他机器的Zookeeper地址。
例如,在服务器1上:
/usr/local/kafka/bin/kafka-storage.sh random-uuid
在其他服务器上使用相同的集群ID启动Kafka服务:
/usr/local/kafka/bin/kafka-server-start.sh config/server.properties
Kafka Manager是一个开源的Kafka集群管理工具,可以用于监控和管理Kafka集群。以下是安装和配置Kafka Manager的步骤:
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-get update
sudo apt-get install sbt
git clone https://github.com/yahoo/kafka-manager
cd kafka-manager
sbt clean dist
cd target/universal
unzip kafka-manager-1.3.3.16.zip -d /home/randy/workspace02
cd /home/randy/workspace02/kafka-manager-1.3.3.16
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9001 &
配置Kafka Manager并进行集群配置。
以上步骤涵盖了在Ubuntu上配置Kafka集群的基本流程。根据实际需求,你可能还需要进行更多的配置和优化。