Kafka03
1. kafka调优
acks: all
三个副本写完 ,才确认,保证系数高
但是性能低
buffer.memory: 536870912 --- 512M
compression.type:snappy
retries: 1000
max.in.flight.requests.per.connection = 1 解决全局乱序得情况
batch.size:10240字节 不是条数 -- 10M producer发送得数据
max.request.size = 2097152 请求最大得size 字节 发送给kafka 最大得消息得size得字节
request.timeout.ms = 360000 大于replica.lag.time.max.ms
metadata.fetch.timeout.ms = 360000
timeout.ms = 360000
linger.ms 5s 生产不用
max.block.ms 1800000 阻塞
官方给得都是默认值,一般调大两倍
broker: CDH
message.max.bytes 2560 KB 1条消息得大小
zookeeper.session,tinmeout.ms 180000
replica.fetch.max.bytes 5M 大于message.max.bytes
num.replica.fetchers 6
2. 监控
看spark streaming 监控界面
-
读写趋势 是否一致
一致 -
读写趋势假如一致, 同一个时间点 为什么读得比写的高? 为什么呢?
输送只有value值
写 value但是消费 还有附带信息
读 value + 附带信息 topic partition offset key 等等数据 -
这幅图说明了什么?
消费没有延迟,稳稳的消费 来多少消费多少
3. 故障案例
-
kafka 磁盘撑爆 zk eof错误
问题 zk文件错误了
解决: 删除 哪台机器报错 /var/lib/zookeeper/version-2 文件夹的内容 -
园区断电
现象:kafka进程状态都是绿色 ok
但是spark streaming 进行消费的时候 Exception --> notAssigndReplicaException
什么意思呢? topic里面副本数分配有问题
解决: 服务down 掉, rm 删除kafka 数据目录
zk的kafka元数据清空
重新安装kafka 建立topic重刷机制 礼拜六下午 ---- 礼拜天下午
问题:
4. 总结
基于kafka平台 公司经典架构
flume/maxwell/ogg – > kafka --> sparkstreaming/flink --> phoenix + hbase
面对上游高峰, 起到缓冲作用,避免下游的作业: 数据同步和ETL计算的压力井喷 导致作业夯住
要稳稳的消费:spark streaming 反压机制
spark.streaming.backpressure.enabled = true
spark.streaming.kafka.maxRatePerPrtition = 2500
QPS = 2W
Topic 8 分区
20000 / 8 = 2500
QPS = 8 分区 * 2500 * 5s(batchtime) = 10W
如果想要QPS为2W
就需要
QPS = 2W = 8 分区 * 5s(batchtime) * ?????? 。 500