2017-03-02 12 views
0

私はスパークアプリケーションがあり、2回のスパークジョブにつながる2つのアクションがあると考えてください。複数のアクション(ジョブ)を持つスパークアプリケーションで失敗したスパークジョブを再実行

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

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

ここで、spark submitコマンドを使用してYarnにsparkアプリケーションを起動したとします。 job1は成功しましたが、job2は失敗しました。

今、ジョブ2が失敗したので、ジョブ2を再実行します。

spark submitコマンドを使用してYarnでsparkアプリケーションを再起動しようとすると、job1とjob2の両方がトリガーされています。私は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 
} 
関連する問題