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的分區數量),兩種方式同時增加對消費數據速率有大幅度提升。

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