2014-07-17 43 views
2

不知下面的設置可能與Apache星火:如何在Apache Spark上運行RPC服務器?

 
        ___________________ RPC 
Distributed DB <-> | resident Backend <---> Frontend 
        |  server  | 
        ___________________ 
          Spark 

什麼我希望做的是利用星火的MLlib &星火流在後端,以及充分利用星火的速度對我的後端計算(統計學,機器學習)。

Spark的架構似乎需要一次提交一個計算,作爲編譯代碼的Jars。但是,由於整個設置是針對多用戶Web應用程序的外部API,因此使用長期運行的後端服務器通過RPC與前端進行通信似乎更爲直接。

這是否可能,沒有太多的黑客? Spark Streaming的本質似乎需要有一個駐留服務器。是否嘗試實施此類應用程序的唯一方法是JavaStreamingContext#awaitTermination()

即使可能,我看到我正在嘗試做的一個可能的問題是解決這樣一個後端建立連接。

非常感謝!

回答

4

哈,我意識到Spark JobServer,我最初標記爲「中途在那裏」,實際上是解決問題的方法。 (如果還有更多,或者更簡單 - 請張貼它們。)

Spark JobServer包裝Spark並通過HTTP以REST風格與外部世界進行通信。有一個命令可以上傳帶有一些編譯的計算代碼的Jar,以及一個單獨的命令來執行任何上傳的Jars,並提供輸入。

因此,我的問題的解決方案是啓動Spark JobServer,上傳Jars以進行我希望系統執行的計算,並從前端發出HTTP RPC,要求JobServer在Spark上啓動相應的Jars。

詳情在JobServer README

相關問題