2

我讀通過這個博客帖子:阿帕奇卡夫卡和Spark流

http://blog.jaceklaskowski.pl/2015/07/20/real-time-data-processing-using-apache-kafka-and-spark-streaming.html

它討論瞭如何使用的Spark流和Apache卡夫卡做一些近乎實時處理。我完全理解這篇文章。它確實展示瞭如何使用Spark Streaming來讀取Topic中的消息。我想知道是否有可用於將消息寫入Kakfa主題的Spark Streaming API?

我的用例很簡單。我有一組數據,可以以恆定的時間間隔(例如每秒)從給定源讀取數據。我使用反應流來做到這一點。我想用Spark對這些數據做一些分析。我想擁有容錯能力,所以卡夫卡開始發揮作用。因此,我將基本上做的是以下(請糾正我,如果我錯了):

  1. 使用反應流以一定的間隔獲得來自外部源的數據
  2. 管結果到卡夫卡的話題
  3. 使用星火流,創建流上下文爲消費者
  4. 對消耗數據進行分析

彼此的問題雖然是Spark中的一個實現的流API反應流規範?它有背壓處理(Spark Streaming v1.5)嗎?

回答

3
  1. 不,目前,Spark Streaming的內置接收器API都不是Reactive Streams實現的實現。但有一個issue for that你會想要遵循。
  2. 但是Spark Streaming 1.5 has internal back-pressure-based dynamic throttling。管道中有一些work to extend that beyond throttling。該限制與Kafka直接流API兼容。

  3. 您可以在Spark Streaming應用程序中寫信給卡夫卡,這裏是one example

(全面披露:我的一些背壓工作implementers之一)

+0

我有一個關於反壓功能,你作爲一個執行者的問題: 我使背壓,但對系統沒有影響。我正在處理相當大的數據項目,吞吐量約爲40件/秒。我已經修復了maxRate,否則延遲時間會持續增長並永不停止。背壓似乎適用於處理推文,其數據速率約爲15000 tweets/sec ... – chAlexey

1

你可以查看鏈接here瞭解如何做到這一點的一些例子。

相關問題