SparkStreaming消费kafka数据堆积问题(即生产者生产数据速率>>消费者消费数据速率)

 

Spark直连kafka解决方案:

注意:spark直连kafka spark的分区数和kafka的分区数是一致的

 

1.增加kafka的分区数,相当于增加了spark的分区数,分区数增加处理数据能力上升。但是分区数量不要少于服务器(exector服务器)的cpu核数,spark官方提示分区数要是cpu总核数的2~3倍

 

Kafka增加分区的命令:

./kafka-topics.sh --zookeeper localhost:2181 -alter --partitions 4 --topic test1

 

2.增加每个分区的内存数量,在执行spark程序的命令中指定 --executor (x)G  --driver (x)G。

增加了内存数量降低程序的运行时间。

 

3.增加服务器的数量。服务器数量增加spark的节点相对应的增加,节点增加会将原来数据分发到多的节点上进行数据的处理,增加速率。

 

4.最优处理方式就是,增加服务器数量的同时也增加kafka分区的数量(相当于增加spark的分区数量),两种方式同时增加对消费数据速率有大幅度提升。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章