簡體   English   中英

使用Spark流在本地設置中運行兩個並行的自定義接收器流以進行本地測試

[英]Running two parallel custom receiver streams in local setup with Spark streaming for local test

我目前正在學習如何使用Spark流,並希望通過加入並行流進行一些實驗。 為此,我想使用自定義Receiver類設置兩個並行流,只生成隨機數。 到目前為止,我已完成所有設置。

但是,在一個Spark上下文中運行同一接收者類的兩個自定義接收者實例似乎存在問題。 當我只運行一個時,一切運行正常。 當我連接第二個時,似乎會出現一些無限循環錯誤。 症狀是我不再得到任何輸出。 為了更好地理解,我在github上放置了一個簡單的示例來顯示問題

如果您克隆項目,那么一切都應該正常工作。 只需取消注釋Application.java中的第18行,您應該看到print調用的輸出消失了。 這可能是Spark流中的錯誤,或者我對庫的工作原理的理解不足以正確使用它。 無論哪種方式,我都希望這里有一些專家能夠為我解決這個問題。

幸運的是, Stackoverflow中有一個“相關”功能。 只是通過查看“相關”線程找到了我的解決方案。 對以下線程的可接受答案也可以解決此處描述的問題。

因此,解決方案是,在本地設置中,如果您使用主URL“ local [2]”,則只會獲得2個工作線程。 在此設置中,這兩個都由自定義接收器使用。 為了獲得第三個處理線程,需要使用主URL“ local [3]”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM