大数据(4d)Kafka安装和基本命令

本文详细介绍了Apache Kafka 2.7.0的安装步骤,包括解压、配置、集群分发、启动停止等,并讲解了Kafka的基本概念如生产者、消费者、分区等。此外,还提供了创建、查看、修改和删除主题的命令。最后,更新了Kafka 3.0的集群部署流程,包括环境变量设置、解压、配置和启动操作。

概述

  • Kafka:基于发布/订阅模式分布式消息队列
  • 主用场景:大数据实时处理、流量削峰、实时数仓
  • 官方教学:http://kafka.apache.org/documentation/

基础架构

英文名译名说明
Producer生产者生产消息
Consumer消费者消费消息
Consumer Group消费者组由多个Consumer组成
是逻辑上的一个订阅者
Broker经纪人一台kafka服务器就是一个Broker
一个集群由多个Broker组成
一个Broker可以容纳多个topic的partition
Topic主题可以理解为一个存放消息的逻辑上的队列
一个topic可以分布到多个Broker
Partition分区一个topic可以分存多个partition
每个partition是一个有序的队列
Replica复制品数据副本
Leader首领对接生产者和消费者
Follower追随者实时同步leader的数据
leader故障时,某follower会成为新的leader

Kafka2.7.0安装

  1. 免密登录
  2. 环境变量
  3. 安装JDK1.8和ZooKeeper3.5.7
集群规划服务名hadoop100hadoop101hadoop102
ZooKeeperQuorumPeerMain111
KafkaKafka111

1、解压、改名

tar -zxf kafka_2.13-2.7.0.tgz -C /opt/
cd /opt/
mv kafka_2.13-2.7.0 kafka
ll

2、主要配置

版块参数说明
服务器基础broker.idbroker 编号,唯一的,每台机都不同
服务器基础delete.topic.enable是否允许删主题
(旧版默认false,新版默认true,所以本文不配置)
套接字num.network.threads处理网络请求的线程数
套接字num.io.threads处理磁盘IO的线程数
套接字socket.send.buffer.bytes发送套接字的缓冲区字节数
套接字socket.receive.buffer.bytes接收套接字的缓冲区字节数
套接字socket.request.max.bytes套接字接收请求的最大字节数
日志log.dirs日志存放的路径
日志num.partitions每个主题的默认分区数
日志num.recovery.threads.per.data.dir每个数据目录 启动时日志恢复 和 关闭时刷新 的线程数
日志保留log.retention.hours基于时间的日志保留策略(小时)
日志保留log.retention.bytes基于大小的日志保留策略(字节)
日志存储log.segment.bytes日志片段最大字节数
日志保留log.retention.check.interval.ms检查日志片段的周期(毫秒)
ZooKeeperzookeeper.connectZookeeper集群地址(逗号分隔)
  • delete.topic.enable旧版有新版没,已经默认允许删主题,所以此处不用配
  • 本文只配log.dirs(60行)和zookeeper.connect(123行)
vi $KAFKA_HOME/config/server.properties
log.dirs=/opt/kafka/logs
zookeeper.connect=hadoop100:2181,hadoop101:2181,hadoop102:2181/kafka
mkdir $KAFKA_HOME/logs

细节:/kafka表示在ZooKeeper集群根目录下创建名为kafka的节点,后续节点会在这个/kafka下创建

3、文件分发

rsync -a $KAFKA_HOME/ hadoop101:$KAFKA_HOME/
rsync -a $KAFKA_HOME/ hadoop102:$KAFKA_HOME/

然后修改每台机(貌似不能直接用ssh+vi)的broker.id,此处分别设为【100、101、102】

vi $KAFKA_HOME/config/server.properties

4、集群启停

先启动ZooKeeper集群,再启动Kafka集群

kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
ssh hadoop101 "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
ssh hadoop102 "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
kafka-server-stop.sh
ssh hadoop101 "kafka-server-stop.sh"
ssh hadoop102 "kafka-server-stop.sh"

5、群起脚本

https://blog.youkuaiyun.com/Yellow_python/article/details/115862167

Kafka命令

参数说明备注
--topic主题名称
--replication-factor副本数
--partitions分区数
--zookeeperZooKeeper集群地址正在弃用
--bootstrap-server--zookeeper类似,指Kafka集群地址建议使用

1、创建主题

kafka-topics.sh --create \
--zookeeper ZK地址:2181/kafka \
--replication-factor 副本数 \
--partitions 分区数 \
--topic 主题名称

2、查看有哪些主题

kafka-topics.sh --zookeeper ZK地址:2181/kafka --list

3、查看某主题的描述(附图!)

kafka-topics.sh --describe \
--zookeeper ZK地址:2181/kafka \
--topic 主题名称

4、生产和消费

4.1、生产

kafka-console-producer.sh \
--broker-list Kafka地址:9092 \
--topic 主题名称

4.2、消费

  • --from-beginning会把主题以往所有数据都读取出来
  • --group指定消费者组
kafka-console-consumer.sh \
--bootstrap-server Kafka地址:9092 \
--topic 主题名称 \
--from-beginning \
--group 消费者组名称

5、使 Leader 负载均衡

kafka-preferred-replica-election.sh --zookeeper ZK地址:2181/kafka

6、修改主题(增大分区数)

可以增大分区数,不能减少

kafka-topics.sh --zookeeper ZK地址:2181/kafka --alter --topic 主题名 --partitions 6

7、删除主题

kafka-topics.sh --delete \
--zookeeper ZK地址:2181/kafka \
--topic 主题名

8、消费者组 的查看和删除

查看消费者组

kafka-consumer-groups.sh \
--describe \
--all-groups \
-all-topics \
--bootstrap-server hadoop102:9092

--delete --group删除消费者组

kafka-consumer-groups.sh \
--delete --group G1 \
--bootstrap-server hadoop102:9092

9、查看生产的内容

查看消息内容

kafka-dump-log.sh \
--print-data-log \
--files $KAFKA_HOME/logs/主题名-分区号/片段偏移量.log

查看索引

kafka-dump-log.sh \
--print-data-log \
--files $KAFKA_HOME/logs/主题名-分区号/片段偏移量.index

查看消息内容

查看索引

新增:Kafka3版本集群部署

1、环境变量

# Kafka
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

2、解压

tar -zxvf kafka_2.12-3.0.0.tgz
mv kafka_2.12-3.0.0 $KAFKA_HOME

3、配置

cd $KAFKA_HOME/config/
vim server.properties

修改内容(其中broker.id每台不一样)

broker.id=0
log.dirs=/opt/module/kafka/datas
zookeeper.connect=hadoop105:2181,hadoop106:2181,hadoop107:2181/kafka

4、分发,分发后修改每台机的broker.id

rsync.py $KAFKA_HOME

5、先启动ZooKeeper集群,然后每台机启动Kafka

kafka-server-start.sh -daemon config/server.properties

6、创建主题

kafka-topics.sh --bootstrap-server hadoop105:9092 \
--create --partitions 3 --replication-factor 1 --topic temp01

7、查看主题列表

kafka-topics.sh --bootstrap-server hadoop105:9092 --list

8、生产

kafka-console-producer.sh --bootstrap-server hadoop105:9092 --topic temp01

9、消费

kafka-console-consumer.sh --bootstrap-server hadoop105:9092 --topic temp01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值