Spark在同一個application並行運作Job的方法

之前在測試zeppelin的時候,由於一個Zeppelin instance只會使用一個Spark Application去運行Spark Job

因為當有一個Spark Job在執行的時候,若同時間想執行另一個Spark Job

另一個Spark Job會等到當前執行的Job跑完之後才執行

後來參考了Spark job-scheduling的文件
http://mogile.web.fc2.com/spark/job-scheduling.html

Spark Application支援spark.scheduler.mode的設定
預設是FIFO的執行,也就是先進先出的運行Job
而spark.scheduler.mode支援另一種參數 FAIR,可以對應多User的同時操作

只要事先設定

spark.scheduler.mode=FAIR

就可以讓Spark Application並行的去運作的Spark Job
說是這樣說,初步測起來的確Spark Application可以同時run多個Spark Job
但是Zeppelin內部的Spark Interpreter Scheduler仍是用FIFO模式去Run.
https://github.com/apache/incubator-zeppelin/blob/b88f52e3cf798c46d7e3b0ed3ea9f8bbd2b6d9d8/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java

在我的應用場景下仍然幫不上忙,目前也沒有真的需要去讓它平行化,之後有機會再繼續這個問題

comments powered by Disqus