【大数据】Kafka-3.5.0安装


前言

  • Kafka传统定义:是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
  • 发布/订阅模式:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息
  • Kafka最新定义:是一个开源的分布式事件流平台 (Event Streaming
    Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

在这里插入图片描述

测试完后用ps aux | grep "kafka-console-consumer" | grep -v grep结束控制台kafka任务


一、Kafka概述

1. 消息队列

目前企业中比较常见的消息队列产品主要有 Kafka、ActiveMQ、RabbitMQ、RocketMQ 等,在大数据场景主要采用Kafka作为消息队列

🥩传统的消息队列的应用场景包括:缓存/消峰解耦异步通信

在这里插入图片描述在这里插入图片描述在这里插入图片描述

🥩消息队列的两种模式

在这里插入图片描述

2. Kafka基础架构

在这里插入图片描述

.👉解读

  1. Producer:消息生产者,就是向Kafka broker发送消息的客户端。
  2. Consumer:消息消费者,向Kafka broker获取消息的客户端。注:生产和消费只针对"Leader"。
  3. Consumer Group(CG):消费者组,由多个 consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内的一个消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  4. Broker:一台Kafka服务器就是一个broker,一个集群由多个broker组成。一个broker可以容纳多个topic。
  5. Topic:可以理解成一个队列,生产者和消费者面向的都是一个topic。
  6. Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker上,一个topic可以分为多个partition,每个partition都是一个有序的队列。
  7. Replica:副本。一个topic 的每个分区都有若干个副本,一个Leader 和若干个Follower。
  8. Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是Leader。
  9. Follower:每个分区多个副本中的“从”,实时从Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个Follower 会成为新的Leader。
  10. Zookeeper:记录了哪些服务器上线了,和一个分区中,谁是"Leader"。

二、Kafka安装

1. 安装配置kafka-3.5.0

# 下载
cd /opt/software/;wget https://archive.apache.org/dist/kafka/3.5.0/kafka_2.13-3.5.0.tgz

# 解压
tar -zxvf kafka_2.13-3.5.0.tgz -C /opt/module/
cd /opt/module/;ll

# 修改名称
mv kafka_2.13-3.5.0/ kafka-3.5.0

# 进入到配置文件的目录"/opt/module/kafka-3.5.0/config",修改配置文件"server.properties"
# 第24行全局唯一的编号,各个节点不能重复
broker.id=0
# 第62行kafka日志存放路径
log.dirs=/opt/module/kafka-3.5.0/datas
# 第125行配置连接Zookeeper集群的地址(在zk根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka-3.5.0

# 记得分发
xsync kafka-3.5.0
# 分别在103、104上vim /opt/module/kafka-3.5.0/config/server.properties修改broker.id
broker.id=1
broker.id=2

# 增加环境变量
vim /etc/profile.d/my_env.sh
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka-3.5.0
export PATH=$PATH:$KAFKA_HOME/bin

# 分发
xsync /etc/profile.d/my_env.sh
# 每个服务器上分别刷新环境配置文件
source /etc/profile

2. 启动kafka

建议先安装zookeeper👉点击前往下载zookeeper教程

📊集群统一启动和停止shell脚本vim /root/bin/kf.sh

#!/bin/bash
case $1 in
"start")
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "--- 启动 $i kafka ---"
		ssh $i "sh /opt/module/kafka-3.5.0/bin/kafka-server-start.sh -daemon /opt/module/kafka-3.5.0/config/server.properties"
	done
;;
"stop")
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "--- 停止 $i kafka ---"
		ssh $i "sh /opt/module/kafka-3.5.0/bin/kafka-server-stop.sh"
	done
;;
esac

最后加权限chmod 777 kf.sh

📊Kafka,启动!

# 先启动zookeeper
zk.sh start
kf.sh start

3. 命令行操作

对不同模块进行操作时有不同的脚本,三大部分脚本如下图(执行脚本命令时可以不在Kafka目录下,因为配置了环境变量)

在这里插入图片描述

3.1. 主题部分命令行操作

# 查看操作主题命令行参数
kafka-topics.sh
# 客户端连接服务端Kafka还设置一个服务端提高可靠性,并查看当前服务器中的所有 topic(发现是空)
kafka-topics.sh --bootstrap-server hadoop102:9092,hadoop103:9092 --list
参数描述
–bootstrap-server <String: server toconnect to>连接的 Kafka Broker主机名称和端口号
–topic <String: topic>操作的topic名称
–create创建主题
–delete删除主题
–alter修改主题
–list查看所有主题
–describe查看主题详细描述
–partitions <Integer: # of partitions>设置分区数
–replication-factor<Integer: replication factor>设置分区副本
–config<String: name=value>更新系统默认的配置
# 创建 first topic,必须指定分区和副本
kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first

在这里插入图片描述

# 查看 first 主题的详情
kafka-topics.sh --bootstrap-server hadoop102:9092 --topic first --describe

在这里插入图片描述

 # 修改分区数(注意:分区数只能增加,不能减少)
kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3
# 不能通过命令行的方式修改副本数!
# 删除first topic
kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first

在这里插入图片描述

3.2. 生产者、消费者命令行操作

# 查看操作生产者命令参数
kafka-console-producer.sh
# 查看操作消费者命令参数
kafka-console-consumer.sh
参数描述
👉生产者
-bootstrap-server <String:server toconnect to>连接的Kafka Broker主机名称和端口号
–topic String:topic操作的topic名称
👉消费者
–bootstrap-server <String:server toconnect to>连接的Kafka Broker主机名称和端口号
–topic <String: topic>操作的topic名称
–from-beginning从头开始消费
–group <String: consumer group id>指定消费者组名称
# 在102创建生产者向topic发送数据(producer)
kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
# 在103创建消费者查看记录(consumer)
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
# 在103上查看102历史到现在的消费记录
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first --from-beginning

在这里插入图片描述


总结

🥳顺利安装好kafka

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值