环境改造
总体监控设计
由于排查问题为预处理集群数据量大的都存在该问题,故先把没有的监控搭建上。包含预处理Kafka Manager、实时程序 pushgetway,核心Kafka Manager。
刚好一个月前搭建了一个Promethues用于NiFi预处理的积压监控,网络也是互通的,故在此上面进行监控配置升级。
首先搭建KafkaManager在核心,一共两个KafkaManager用于核心和预处理节点的Kafka集群监控。然后在Promethues中配置各类Metrics指标抓取,最后由Grafana进行展示,效果如下图
在进行监控搭建的过程中,也发现了各种奇葩的报错与问题。比如核心集群与预处理集群的Kafka配置全为默认值,B预处理kafka集群与某其他程序在同一服务器,其中这个程序固定吃200G内存,但CPU占用不到5%,严重影响资源配比。
现在回过头来看看监控,最严重的的省份就是 A和B两个集群。我们这里挑最严重的A和B进行排查。
预处理Kafka集群
刚刚也说过了,在预处理的Kafka与核心的Kafka配置皆为默认值,直接登录进行修改配置吧。
登录Ambari进行Kafka更改
KafkaManager 各省配置
直接上部分更改配置:
内存使用从4G提到12G。
PS:预处理Kafka集群此前并没有配置log打印信息,但预处理Kafka集群问题不明显,只是会影响消费数据入库和消费速度,故没有继续精细化配置。
可以参考的kafka端配置有:
配置名 | 内容 | 备注 |
message.max.bytes | 消息体的最大大小,单位是字节 | |
num.network.threads | broker 处理消息的最大线程数 | |
num.io.threads | broker处理磁盘IO 的线程数 | |
background.threads | 后台任务处理的线程数 | 删除文件线程池 |
queued.max.req |