2015-09-06 98 views
1

我有一個Kafka分區和一個sparkStreaming應用程序。一個有10個內核的服務器。當火花流從卡夫卡收到一條消息時,後續過程將需要5秒鐘(這是我的代碼)。所以我發現sparkStreaming讀取的Kafka消息非常慢,我猜測當spark讀出一條消息時,它會等待消息被處理,所以讀取和處理是同步的。 我想知道我可以異步做出火花閱讀嗎?所以從卡夫卡的閱讀不會被後續處理拖累。那麼這個火花將很快消耗來自卡夫卡的數據。然後我可以專注於spark內的慢速數據處理。順便說一句,我正在使用foreachRDD函數。如何在從卡夫卡讀取時異步生成火花流

回答

0

你可以增加kafka中的分區數量,它應該提高並行度,你也可以嘗試使用「直接kafka接收器」,當你的應用程序從kafka讀取時真的提高性能