kafka常用命令

1、常用命令

1.0 启动关闭命令

server.properties在config目录下,要指定

启动:
kafka-server-start.sh -daemon server.properties
#-daemon是后台启动的意思,默认前台阻塞
#server.properties是指定配置文件
关闭:
kafka-server-stop.sh

1.1 查看主题

#查看主题
kafka-topics.sh --zookeeper master01:2181/kafka --list

1.2 创建主题

#创建主题“first”,分区数为3,备份因子为2
kafka-topics.sh --zookeeper master01:2181/kafka --create --topic first --partitions 3 --replication-factor 2

1.3 查看主题的结构描述信息

#查看主题“first”的结构描述信息
kafka-topics.sh --zookeeper master01:2181/kafka --describe --topic first

1.4 进入生产者模式

#生产者模式,生产数据给多个消费者
kafka-console-producer.sh --broker-list master01:9092,master02:9092 --topic first

1.5 进入消费者模式

#消费者模式1,查看生产者发送过来的东西,只看启动生产的数据
#--bootstrap-server:指定kafka服务端,kafka的主机名:端口
kafka-console-consumer.sh --bootstrap-server master01:9092,master02:9092 --topic first
#消费者模式2,查看生产者发送过来的东西,可以看到启动前的数据,从头到尾
kafka-console-consumer.sh --bootstrap-server master01:9092,master02:9092 --topic first --from-beginning

1.6 查看消费者组

#查看消费者组
kafka-consumer-groups.sh --bootstrap-server master01:9092 --list
#console-consumer-71716
#console-consumer-32602
#console-consumer-45272

1.7 查看组详情

#查看组详情
kafka-consumer-groups.sh --bootstrap-server master01:9092 --describe --group console-consumer-????
#输出结果如下:
#GROUP消费者组,TOPIC主题,PARTITION分区,CURRENT-OFFSET当前偏移量,LOG-END-OFFSET下一条将要加入的日志偏移,LAG滞后延时,CONSUMER-ID消费者ID,HOST主机IP,CLIENT-ID客户端

1.8 生产压力测试

#生成压力测试,perf性能
kafka-producer-perf-test.sh --topic first --record-size 1000 --num-records 200000 --throughput -1 --producer-props bootstrap.servers=master01:9092,master02:9092,slave01:9092,slave02:9092
#--topic first 主题
#--record-size 1000 一条消息覆盖的字节
#--num-records 200000 一次性生成多少
#--throughput -1 :定量测延时,不定量测吞吐
#--producer-props 所有的机器

1.9 消费压力测试

#消费压力测试
kafka-consumer-perf-test.sh --topic first --fetch-size 10000 --messages 200000 --threads 1 --broker-list master01:9092,master02:9092,slave01:9092,slave02:9092

1.10 消费者组offset重置

更新到当前group最初的offset位置
kafka-consumer-groups.sh --bootstrap-server single:9092 --group mydemo3 --reset-offsets --all-topics --to-earliest --execute

更新到指定的offset位置
kafka-consumer-groups.sh --bootstrap-server single:9092 --group mydemo3 --reset-offsets --all-topics --to-offset 500000 --execute

更新到当前offset位置(解决offset的异常)
kafka-consumer-groups.sh --bootstrap-server single:9092 --group mydemo3 --reset-offsets --all-topics --to-current --execute

offset位置按设置的值进行位移
kafka-consumer-groups.sh --bootstrap-server single:9092 --group mydemo3 --reset-offsets --all-topics --shift-by -100000 --execute

offset设置到指定时刻开始
kafka-consumer-groups.sh --bootstrap-server single:9092 --group mydemo3 --reset-offsets --all-topics --to-datetime 2021-03-27T14:30:00.000

1.11 游标位置

#命令:查看读取的游标位置
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list single:9092 --topic mydemo3 --time -1
#输出:前面的游标数,后面是总数
mydemo3:0:0

1.12 解析查看日志

kafka-dump-log.sh --files ./00000000000000000000.index

1.13、修改分区数(increase)

kafka-topics.sh --zookeeper hd01:2181/kafka --alter --topic mydemo4 --partitions 3

2、查看目录结构

在kafka当中, 每一个topic会有一个单独文件夹, 在topic下会为每一个分区生成一个单独的文件夹, 将这二者合并命名,topic-分区号, 例如test-0, 在每一个分区下又会有多个segment, 既然已经有多个分区了, 为什么要再进行划分为多个segment?

答:①如果只存一个文件中, 文件会越来越大, ②Kafka中的数据默认存储7天, 每一天都会删除7天前的数据, 如果都存在一个文件当中, 会不好删

image-20210118105751733

1.生成测试数据

kafka-producer-perf-test.sh --topic test --num-records 500000 --record-size 1000 --producer-props bootstrap.servers=singleNode:9092 --throughput 1000000000

image-20210118104755487

image-20210118104839561

2.查看index和log文件

kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log --print-data-log

image-20210118105015020

kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.index --print-data-log

image-20210118105335288

3、开发经验

3.1 kafka节点数量:

2*(峰值生产速度(MB)*副本数量/100)+1

峰值生产速度向客户提取。如果峰值生产速度:50M/s,副本数,2R/p,那么节点数量为2*(50*2/100)+1=3台。一般集群规模10台,则kafka为3~5台

3.2 Topic数量:

一般情况下,每种日志类型一个topic:行为日志一个,RMDBMS一个

3.3 分区数量:

分区数量是测出来的。创建单分区的topic,测producer和consumer的吞吐速度,假设生产者最小值Tp,消费者最小值为Tc,期望的吞吐为Tt,则分区数为Tt/Math.min(Tp,Tc)。原则是生产消费者的速度都要满足。一般分数区数副本设置根据集群的规模取值3-10个。

image-20210116215245509

image-20210116215748111

4、Kafka工作流程图

image-20210118133026130

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值