Kafka集群搭建步骤


一、Kafka是什么

Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,主要用于处理实时数据流。它最初是由LinkedIn 开发的,用于解决其日益增长的实时数据处理需求。Kafka 的设计目标是构建一个高吞吐量、低延迟、可扩展的平台,用于处理发布和订阅消息的流式数据。

以下是Kafka的一些特性:

  • 发布-订阅模型:Kafka 基于发布-订阅模型,允许生产者将消息发布到一个或多个主题(topic),而消费者可以订阅这些主题并处理消息。
  • 分布式架构:Kafka 被设计为一个分布式系统,可以轻松地水平扩展以处理大量数据。它通过分区(partition)将每个主题的消息分布到多个服务器上。
  • 持久性:Kafka 将消息持久化到磁盘,以确保消息不会丢失。消费者可以根据需要重复读取消息。
  • 高吞吐量:Kafka 被设计为具有高吞吐量和低延迟。它可以处理每秒数百万条消息的数据流。
  • 可靠性:Kafka 提供了副本机制和容错性设计,确保即使某些节点失败,系统仍然可以继续工作。
  • 多客户端支持:Kafka提供了多种客户端,包括 Java 、Python 和其他编程语言的客户端,使得开发者可以方便地与Kafka集成。
  • 流处理:除了消息传递,Kafka 还提供了流处理功能,可以进行实时数据处理、转换和分析。

总体而言,Kafka 是一个非常强大且灵活的流处理平台,被广泛用于构建实时数据管道、日志聚合、指标收集等场景。

二、具体安装步骤

准备工作

1、三台虚拟机

192.168.72.151
192.168.72.152
192.168.72.153

2、安装JDK
Kafka 是基于 Java 开发的

java -version

下载安装包

1、从 Kafka 官方网站下载二进制安装文件。

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

2、解压下载的 Kafka 压缩文件。

tar -xzf kafka_2.13-3.7.0.tgz

配置 Zookeeper

1、进入 Kafka 目录,编辑 config/zookeeper.properties 文件

tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/log/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.72.151:2888:3888
server.2=192.168.72.152:2888:3888
server.3=192.168.72.153:2888:3888
  • tickTime:Zookeeper 的基本时间单元,以毫秒为单位。
  • initLimit:指定 Leader 选举过程中跟随者(follower) 初始化连接到 Leader 的最长时间,以 tickTime 为单位。
  • syncLimit:用于指定 Leader 和跟随者(follower)之间用于同步的最大延迟时间,以 tickTime 为单位。
  • server.x:集群中每个节点的配置,x 表示节点的编号,配置包括 server.x=hostname:peerPort:leaderPort ,其中 peerPort 是节点之间通信的端口,leaderPort 是选举 Leader 的端口。

2、在每台机器上,生成 myid 文件
该文件用于标识集群中每个节点,内容为一个整数,表示节点的 ID 。这个 ID 在集群中必须是唯一的,并且必须与配置文件中 server.x 配置中的 x 相匹配。

#192.168.72.151
echo "1" > /var/lib/zookeeper/myid
#192.168.72.152
echo "2" > /var/lib/zookeeper/myid
#192.168.72.153
echo "3" > /var/lib/zookeeper/myid

启动 Zookeeper 集群

在3台机器上,进入 Kafka 目录,执行启动命令

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.nohup &

配置Kafka

进入 Kafka 目录,编辑 config/server.properties 文件

broker.id=1
listeners=PLAINTEXT://192.168.72.151:9092
log.dirs=/var/log/kafka
zookeeper.connect=192.168.72.151:2181,192.168.72.152:2181,192.168.72.153:2181
  • broker.id:每个Kafka节点的唯一标识。
  • listeners:客户端连接的地址和端口。
  • log.dirs:存储数据的目录。

启动 Kafka 集群

在3台机器上,进入 Kafka目录,使用以下命令启动 Kafka 节点

nohup bin/kafka-server-start.sh config/server.properties > kafka.nohup &

测试

1、创建主题:使用 bin/kafka-topics.sh 创建一个测试主题。

bin/kafka-topics.sh --create --topic test --bootstrap-server 192.168.72.151:9092 --partitions 3 --replication-factor 2

这将创建一个名为test的主题,分区数为3,复制因子为2。

2、发送消息:使用 bin/kafka-console-producer.sh 发送一些消息到创建的主题。

bin/kafka-console-producer.sh --topic test --bootstrap-server 192.168.72.151:9092

在提示符下输入一些消息,然后按Enter键发送。

3、消费消息:使用 bin/kafka-console-consumer.sh 消费发送的消息。

bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server 192.168.72.151:9092

这将从test主题中消费消息并将其显示在控制台上。


请注意,上述步骤中的IP地址、端口和目录路径根据你的实际环境进行调整。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值