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