2017-03-02 69 views
0

請考慮我有火花應用程序並有兩個導致兩個火花作業的動作。在具有多個動作的火花應用程序(作業)中重新運行失敗的火花作業

//spark Application 
    //Spark Job1 
     .... 
     errorCount.saveAsTextFile(errorCountOpPath); 

    //spark Job2  
     ...... 
     debugCount.saveAsTextFile(debCountOpPath); 

現在讓我們假設我們使用火花提交命令啓動火花的應用對成紗。 job1成功,但job2失敗。

現在我想重新運行job2,因爲它失敗了。

當我嘗試使用spark submit命令重新啓動Yarn上的spark應用程序時,job1和job2都被觸發。但我不想讓job1成功完成,因此不會觸發job1。

有什麼辦法可以確保只有失敗的火花應用程序才能運行?

回答

0

您可以將檢查您的通話saveAsTextFile象下面這樣: -

val conf = sc.hadoopConfiguration 
val fs = org.apache.hadoop.fs.FileSystem.get(conf) 
val exists = fs.exists(new org.apache.hadoop.fs.Path("/path/on/hdfs/to/SUCCESS.txt")) 
if(!exists) { 
// write the the file 
} 
相關問題