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的分区数量),两种方式同时增加对消费数据速率有大幅度提升。