2016-08-12 47 views
0

我想按照這個文檔:如何查詢Spark JobServer並找到它存儲Jars的位置?

https://github.com/spark-jobserver/spark-jobserver#dependency-jars

方案2中列出的文檔說:

從屬JAR-的URI也可以在作業配置PARAM 使用提交工作時。在ad-hoc上下文中,這與依賴jar-uris上下文配置參數具有相同的效果 。在持續的 上下文中,將爲當前作業加載罐子,然後爲將在持久上下文上執行的每個 作業加載罐子。 curl -d「」 'localhost:8090/contexts/test-context?num-cpu-cores = 4 & memory-per-node = 512m' OK⏎curl 'localhost:8090/jobs?appName = test & classPath = spark.jobserver.WordCountExample & context = test-context & sync = true' -d'{dependent-jar-uris = [「file:///myjars/deps01.jar」,「file:/// myjars /將會被加載並提供給Spark使用,並且可以在Spark中使用。驅動程序& 執行程序。

「file:/// myjars /」目錄是SJS節點的JAR目錄還是一些自定義目錄?

我有一個Windows機器上的客戶端和一個Linux機器上的Spark JobServer。接下來,我將一個JAR上傳到SJS節點。 SJS節點將Jar放在某個地方。然後,當我打電話開始Job並設置'dependent-jar-uris'時,SJS節點將找到我以前上傳的JAR並運行作業:

「dependent-jar-uris」設置爲「file :///tmp/spark-jobserver/filedao/data/simpleJobxxxxxx.jar」

這工作得很好,但我不得不手動去SJS節點周圍搜索找到這個位置(例如文件:/// TMP /spark-jobserver/filedao/data/simpleJobxxxxxx.jar),然後將其添加到我未來的請求中以開始工作。

而是,如何從客戶端創建一個REST調用,以獲取Spark JobServer在上傳這些jar時的路徑,以便我可以在我的依賴中正確設置file:///路徑-jar-uris'屬性動態?

回答

0

我不認爲使用「POST/jars」上傳的罐子可以在依賴罐子裏使用。由於您正在上傳罐子,因此您已經知道本地路徑。只要使用它。

+0

在我的情況下,作業執行客戶端沒有在客戶端本地引用JAR。它期望它們已經在服務器上。如果Spark JobServer允許通過REST API單獨上傳JAR,那麼如果不通過「dependent-jar-uris」,它們以後如何引用? – Jason

+0

POST /罐子不用於上傳相關的罐子。它用於上傳Spark應用程序jar。我建議你複製你所有的依賴jar到spark job server linux box並將它們添加到spark jobsever conf本身的dependent-jar-uris中。 – noorul