(1)kafka
(2)kafka集群安装
集群规划
(3)kafka集群启动停止脚本
1
)在
/home/atguigu/bin
目录下创建脚本
kf.sh
[atguigu@hadoop102 bin]$ vim kf.sh
在脚本中填写如下内容
2
)增加脚本执行权限
[atguigu@hadoop102 bin]$ chmod u+x kf.sh
3
)
kf
集群启动脚本
[atguigu@hadoop102 module]$ kf.sh start
4
)
kf
集群停止脚本
[atguigu@hadoop102 module]$ kf.sh stop
(4)Kafka常用命令
1
)查看
Kafka Topic
列表
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka --list
2
)创建
Kafka Topic
进入到
/opt/module/kafka/
目录下创建日志主题
3
)删除
Kafka Topic
4
)
Kafka
生产消息
5
)
Kafka
消费消息
--from-beginning
:会把主题中以往所有的数据都读取出来。根据业务场景选择是否增加
该配置。
6
)查看
Kafka Topic
详情
(5)kafka压测
1
)
Kafka
压测
用
Kafka
官方自带的脚本,对
Kafka
进行压测。
Kafka
压测时,可以查看到哪个地方出
现了瓶颈(
CPU
,内存,网络
IO
)。
一般都是网络
IO
达到瓶颈
。
kafka-consumer-perf-test.sh
kafka-producer-perf-test.sh
2
)
Kafka Producer
压力测试
(
1
)在
/opt/module/kafka/bin
目录下面有这两个文件。我们来测试一下
record-size
是一条信息有多大,单位是字节。
num-records
是总共发送多少条信息。
throughput
是每秒多少条信息,设成
-1
,表示不限流,可测出生产者最大吞吐量。
(
2
)
Kafka
会打印下面的信息
参数解析:本例中一共写入
10w
条消息,吞吐量为
9.14 MB/sec
,每次写入的平均延迟
为
187.68
毫秒,最大的延迟为
424.00
毫秒。
(3)
Kafka Consumer
压力测试
Consumer
的测试,如果这四个指标(
IO
,
CPU
,内存,网络)都不能改变,考虑增加分
区数来提升性能。
参数说明:
--zookeeper
指定
zookeeper
的链接信息
--topic
指定
topic
的名称
--fetch-size
指定每次
fetch
的数据的大小
--messages
总共要消费的消息个数
测试结果说明:
start.time,
end.time,
data.consumed.in.MB,
MB.sec,
data.consumed.in.nMsg
, nMsg.sec
2019-02-19 20:29:07:566,
2019-02-19 20:29:12:170,
9.5368,
2.0714,
100010,
21722.4153
开始测试时间,测试结束数据,共消费数据
9.5368MB
,吞吐量
2.0714MB/s
,共消费
100010
条,平均每秒消费
21722.4153
条
(6)kafka机器数量计算
Kafka
机器数量(经验公式)
=2*
(峰值生产速度
*
副本数
/100
)
+1
先拿到峰值生产速度,再根据设定的副本数,就能预估出需要部署
Kafka
的数量。
比如我们的峰值生产速度是
50M/s
。副本数为
2
。
Kafka
机器数量
=2*
(
50*2/100
)
+ 1=3
台
(7)
项目经验值
Kafka 分区数计算
1
)创建一个只有
1
个分区的
topic
2
)测试这个
topic
的
producer
吞吐量和
consumer
吞吐量。
3
)假设他们的值分别是
Tp
和
Tc
,单位可以是
MB/s
。
4
)然后假设总的目标吞吐量是
Tt
,那么分区数
=Tt / min
(
Tp
,
Tc
)
例如:
producer
吞吐量
=20m/s
;
consumer
吞吐量
=50m/s
,期望吞吐量
100m/s
;
分区数
=100 / 20 =5
分区
资料:
https://blog.csdn.net/weixin_42641909/article/details/89294698
分区数一般设置为:
3-10
个