电商数仓-(Kafka的常用命令,Kafka的压力测试,Kafka机器数量计算)

Kafka的常用命令

1.查看Kafka Topic列表

bin/kafka-topics.sh --zookeeper hadoop12:2181 --list

2.创建Kafka Topic

bin/kafka-topics.sh --zookeeper hadoop12:2181,hadoop13:2181,hadoop14:2181  --create --replication-factor 1 --partitions 1 --topic topic_start

3.删除Kafka Topic

 bin/kafka-topics.sh --delete --zookeeper hadoop12:2181,hadoop13:2181,hadoop14:2181 --topic topic_start

4.Kafka生产消息

bin/kafka-console-producer.sh \
--broker-list hadoop12:9092 --topic topic_start

5.Kafka消费消息

bin/kafka-console-consumer.sh \
--zookeeper hadoop12:2181 --from-beginning --topic topic_start

--from-beginning:会把主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。

Kafka的压力测试

1.Kafka压测
用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈**(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。**
kafka-consumer-perf-test.sh
kafka-producer-perf-test.sh
2.Kafka Producer压力测试
(1)在/export/servers/kafka/bin 目录下面有这两个文件。我们来测试一下

bin/kafka-producer-perf-test.sh --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop12:9092,hadoop13:9092,hadoop14:9092 

说明:
record-size 是一条信息有多大,单位是字节。
num-records 是总共发送多少条信息。
throughput 是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。
(2)Kafka 会打印下面的信息

100000 records sent, 183486.238532 records/sec (17.50 MB/sec), 48.81 ms avg latency, 134.00 ms max latency, 34 ms 50th, 119 ms 95th, 130 ms 99th, 134 ms 99.9th.

参数解析:本例中一共写入 10w 条消息,吞吐量为 17.50MB/sec,每次写入的平均延迟 为 48.81毫秒,最大的延迟为 134.00 毫秒。
(3)Kafka Consumer 压力测试
Consumer 的测试,如果这四个指标(IO,CPU,内存,网络)都不能改变,考虑增加分区数来提升性能。

bin/kafka-consumer-perf-test.sh --zookeeper hadoop12:2181 --topic test --fetch-size 10000 --messages 10000000 --threads 1  

参数说明:
–zookeeper 指定 zookeeper 的链接信息
–topic 指定 topic 的名称
–fetch-size 指定每次 fetch 的数据的大小
–messages 总共要消费的消息个数
测试结果说明:

start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec
2020-07-23 18:05:30:717, 2020-07-23 18:05:33:608, 14.9242, 5.1623, 156492, 54130.7506

开始测试时间,测试结束数据,共消费数据14.9242MB,吞吐量 5.1623MB/s,共消费 156492 条,平均每秒消费 254130.7506 条。

Kafka机器数量计算

Kafka机器数量(经验公式)=2*(峰值生产速度*副本数/100)+ 1

先要预估一天大概产生多少数据,然后用Kafka自带的生产压测(只测试Kafka的写入速度,保证数据不积压)
计算出峰值生产速度。再根据设定的副本数,就能预估出需要部署Kafka的数量先拿到峰值生产速度 
比如我们采用压力测试测出写入的速度是10M/s一台,峰值的业务数据的速度是50M/s。

Kafka机器数量=2*(50*2/100)+ 1=3台
解释:峰值生产速度是什么,怎么算?
峰值生产速度=生产者最大吞吐量

猜你喜欢

转载自blog.csdn.net/qq_46548855/article/details/107543589