在Ubuntu上搭建Kafka集群需要以下几个步骤:
首先,确保你的系统上已经安装了Java运行环境。你可以使用以下命令来安装OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
java -version
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xvf zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/zookeeper
编辑Zookeeper配置文件 /usr/local/zookeeper/conf/zoo.cfg
:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
sudo /usr/local/zookeeper/bin/zkServer.sh start
验证Zookeeper是否启动成功:
sudo netstat -nap | grep 2181
wget https://downloads.apache.org/kafka/2.7.1/kafka_2.12-2.7.1.tgz
curl http://kafka.apache.org/KEYS | gpg --import
wget https://dist.apache.org/repos/dist/release/kafka/2.7.1/kafka_2.12-2.7.1.tgz.asc
gpg --verify kafka_2.12-2.7.1.tgz.asc kafka_2.12-2.7.1.tgz.asc
tar -xvzf kafka_2.12-2.7.1.tgz --directory /data/kafka --strip-components 1
sudo rm -rf kafka_2.12-2.7.1.tgz kafka_2.12-2.7.1.tgz.asc
进入Kafka配置目录 /data/kafka/config
,复制 server.properties
文件并修改:
sudo cp server.properties server-1.properties
sudo cp server.properties server-2.properties
sudo cp server.properties server-3.properties
# 编辑 server-1.properties
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.1:9092
log.dirs=/data/kafka-logs-1
zookeeper.connect=192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181
# 编辑 server-2.properties
broker.id=2
listeners=PLAINTEXT://:9093
advertised.listeners=PLAINTEXT://192.168.1.1:9093
log.dirs=/data/kafka-logs-2
zookeeper.connect=192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181
# 编辑 server-3.properties
broker.id=3
listeners=PLAINTEXT://:9094
advertised.listeners=PLAINTEXT://192.168.1.1:9094
log.dirs=/data/kafka-logs-3
zookeeper.connect=192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181
分别在每台机器上启动Kafka服务:
sudo /data/kafka/bin/kafka-server-start.sh /data/kafka/config/server-1.properties
sudo /data/kafka/bin/kafka-server-start.sh /data/kafka/config/server-2.properties
sudo /data/kafka/bin/kafka-server-start.sh /data/kafka/config/server-3.properties
在任意一个Kafka节点上创建一个Topic:
sudo /data/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.2:2181 --replication-factor 3 --partitions 1 --topic test
在集群中的任意节点上列出Topic:
sudo /data/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.1.2:2181
使用 kafka-console-producer.sh
和 kafka-console-consumer.sh
进行消息生产和消费测试:
# 生产者
sudo /data/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.1:9092,192.168.1.2:9093,192.168.1.3:9094 --topic test
# 消费者
sudo /data/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.1:9092,192.168.1.2:9093,192.168.1.3:9094 --topic test --from-beginning
为了方便管理Kafka服务,可以将Kafka配置为systemd服务:
sudo vim /etc/systemd/system/kafka.service
内容如下:
[Unit]
Description=High-available, distributed message broker
After=network.target
[Service]
User=kafka
ExecStart=/data/kafka/bin/kafka-server-start.sh /data/kafka/config/server.properties
ExecStop=/data/kafka/bin/kafka-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka.service
sudo systemctl start kafka.service
通过以上步骤,你就可以在Ubuntu上成功搭建一个Kafka集群。请根据你的实际环境和需求调整配置和步骤。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu Kafka集群搭建步骤