Kafka下载和使用(linux版)
Apache Kafka 是一个高吞吐量的分布式消息系统,广泛应用于日志收集、实时流处理等场景。本文将以 Linux 系统为例,详细介绍 Kafka 的安装和使用方法。
一、Zookeeper(可选)
Kafka 依赖 ZooKeeper 来进行集群管理,除非您使用的是 KRaft 模式(从 Kafka 2.8.0 起开始支持)。以下是下载和配置 ZooKeeper 的步骤:
1.安装
通过wget命令安装
# 安装 wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.1-bin.tar.gz # 解压 tar -xvzf apache-zookeeper-3.7.1-bin.tar.gz |
2.配置
进入Zookeeper的bin目录,创建Zookeeper的配置文件 zoo.cfg:
cp conf/zoo_sample.cfg conf/zoo.cfg |
编辑 zoo.cfg 文件,设置 dataDir(用于存储Zookeeper数据的目录):
nano conf/zoo.cfg |
修改以下内容:
dataDir=/var/lib/zookeeper clientPort=2181 |
3.启动Zookeeper
bin/zkServer.sh start |
4.验证Zookeeper
bin/zkServer.sh status |
二、Kafka
1.下载
(1)使用 wget 命令下载
wget https://downloads.apache.org/kafka/3.8.0/kafka-3.8.0.tgz |
(2)官网下载
下载地址:
https://kafka.apache.org/downloads |
下载页面:
下载后,上传至服务器。
2.解压Kafka
tar -xvzf kafka_2.13-2.8.0.tgz |
3.配置Kafka
Kafka的配置文件在 config 目录下,主要的配置文件是 server.properties。
根据需要进行修改,例如:
broker.id=0 listeners=PLAINTEXT://localhost:9092 zookeeper.connect=localhost:2181 log.dirs=/var/lib/kafka-logs |
参数解析:
broker.id:Kafka集群中每个broker的唯一标识符。
listeners:设置Kafka监听的地址和端口。
zookeeper.connect:设置Zookeeper的连接地址,默认为 localhost:2181。
log.dirs:设置日志路径,建议自定义路径。
4.启动Kafka
(1)命令启动
bin/kafka-server-start.sh config/server.properties |
(2)验证
ps aux | grep kafka |
5.使用Kafka
(1)创建一个Kafka主题
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 |
(2)查看Kafka主题
bin/kafka-topics.sh --list --bootstrap-server localhost:9092 |
(3)向Kafka主题发送消息
echo "Hello, Kafka" | bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 |
(4)消费Kafka主题的消息
bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092 |
6.关闭Kafka和Zookeeper
(1)停止Kafka
bin/kafka-server-stop.sh |
(2)停止Zookeeper
bin/zkServer.sh stop |
7.后台运行Kafka和Zookeeper(可选)
如果你希望Kafka和Zookeeper在后台运行,可以使用 nohup 命令将它们放到后台运行。
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 & |
nohup bin/zkServer.sh start > zookeeper.log 2>&1 & |
三、总结
Kafka 是一个强大且高度可扩展的消息队列系统,适合于大规模的数据流处理。安装和使用 Kafka 比较直接,但要想在生产环境中实现高可用性和扩展性,还需要考虑集群部署、监控和容错等问题。