在Ubuntu上搭建Kafka环境需要以下几个步骤:
首先,需要安装Java开发工具包(JDK)。可以使用以下命令安装JDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
安装完成后,验证Java是否安装成功:
java -version
访问Apache Kafka官网下载最新版本的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
将解压后的目录移动到合适的位置,例如/opt/kafka
:
sudo mv kafka_2.12-3.5.2 /opt/kafka
进入Kafka目录并编辑server.properties
文件,配置监听端口和日志目录等。以下是一个示例配置:
cd /opt/kafka
sudo vi config/server.properties
需要修改的配置项包括:
broker.id
: 默认值为-1,只有大于等于0的时候,才会正常启动。port
: 当前Kafka的端口,例如9092。host.name
: 单机可直接用localhost
。log.dirs
: 保存日志的地方,需要新建一个文件夹,例如/home/XXX/kafka_2.13-2.8.0/logs
。zookeeper.connect
: zookeeper的连接IP和端口,例如localhost:2181
。在Kafka目录下,启动Zookeeper服务:
sudo bin/zookeeper-server-start.sh config/zookeeper.properties
启动Kafka服务:
sudo bin/kafka-server-start.sh config/server.properties
创建一个主题以验证安装是否成功:
sudo bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看主题列表:
sudo bin/kafka-topics.sh --list --zookeeper localhost:2181
sudo bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
输入两行消息后按Ctrl+C结束。
sudo bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
现在你可以看到刚才产生的消息。
为了使Kafka在系统启动时自动启动,可以创建一个systemd服务文件:
sudo cd /etc/systemd/system
sudo touch kafka.service
编辑kafka.service
文件:
sudo nano kafka.service
添加以下内容:
[Unit]
Description=Kafka Service
After=network.target zookeeper.service
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
[Install]
WantedBy=multi-user.target
保存并退出编辑器,然后重新加载systemd配置并启动Kafka服务:
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
现在,Kafka已经在Ubuntu环境中成功搭建并运行。你可以进一步学习Kafka的高级功能,如配置Kafka集群、生产和消费消息等。