Ubutnu 20.04 安装和使用单机版Kafka 2.5

2020/06/17 大数据

此文首发于我的Jekyll博客:zhang0peter的个人博客


我最近在学习极客时间专栏《Kafka核心技术与实战》,通过此链接购买课程有优惠:《Kafka核心技术与实战》

最近在学大数据,于是打算在ubuntu 20.04上安装和使用Kafka。

官方文档:Apache Kafka

安装Java

Kafka 基于Java,需要先安装Java。Java 8是推荐版本。

apt update &&apt upgrade
apt install openjdk-8-jdk

下载 Kafka

选择下载版本:Index of /Kafka

我选择的是最新版Kafka 2.5.0

wget https://downloads.apache.org/kafka/2.5.0/kafka_2.12-2.5.0.tgz
tar -xzf kafka_2.12-2.5.0.tgz
cd kafka_2.12-2.5.0

启动 Kafka

Kafka 使用ZooKeeper实现集群成员管理、领导者选举。在测试时,可以使用自带脚本启动单机版的ZooKeeper

启动ZooKeeper

-> # bin/zookeeper-server-start.sh config/zookeeper.properties
[2020-06-16 15:03:22,811] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)

启动Kafka

-> # bin/kafka-server-start.sh config/server.properties
[2020-06-16 15:04:48,420] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)

创建 主题/topic

创建一个只有一个分区和一个副本备份,名为test的topic

-> # bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
Created topic test.

获取所有topic:

-> # bin/kafka-topics.sh --list --bootstrap-server localhost:9092
test

Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。

运行生产者,然后在控制台中键入一些消息以发送到服务器。

-> # bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
>This is a message
>This is another message

启动消费者,从生产者处获得消息:

-> # bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a message
This is another message