1)如果是Kafka消费能力不足,则可以考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。(两者缺一不可)
2)如果是下游的数据处理不及时:提高每批次拉取的数量。批次拉取数据过少(拉取数据/处理时间<生产速度),使处理的数据小于生产的数据,也会造成数据积压。

大数据场景下数据积压了

两个办法
1.提高Kafka自己的并发度,比如说增加分区 ,消费者也要增加消费线程(如果是SparkStreaming,就要增加cpu核数)

Kafka增加分区 消费者也要增加消费线程(sparkstreaming CPU核数)
如果Kafka是五个分区,那么SparkStreaming提交任务的时候CPU核心数就要设置5核. Kafka有几个分区,那么SparkStreaming 就要设置几个核心数.
SparkStreaming内存设置问题,看你前面Kafka传递过来的数据,如果是128M,那么对应的SparkStreaming是1G内存就够了.


2. 提高下一级消费者的消费能力,不管是SparkStreaming还是flume,都有batchsize选项,就是每批次拉取文件的个数,你可以从每秒钟拉取1000个调整每秒钟拉取2000~3000之间,
你消费速度快了,那么积压就少了.