我有一个Kafka分区和一个sparkStreaming应用程序。一台10核的服务器。当火花流从Kafka获得一条消息时,后续过程将花费5秒钟(这是我的代码)。所以我发现sparkStreaming读取Kafka的消息非常慢,我猜测当spark读出一条消息时它会等到消息处理完毕,因此读取和处理是同步的。 我想知道我可以异步进行火花读数吗?因此,卡夫卡的阅读不会受到后续处理的拖累。然后火花将很快消耗卡夫卡的数据。然后我可以专注于内部火花的慢速数据处理。顺便说一下,我使用的是foreachRDD功能。
答案 0 :(得分:0)
你可以增加kafka中的分区数量,它应该提高并行度,你可以尝试使用“直接kafka接收器”,当你的应用程序从kafka读取时真正提高性能