web-dev-qa-db-ja.com

Sparkジョブ失敗の再試行回数を制限する方法は?

Sparkジョブをspark-submit経由で実行していますが、失敗した場合にジョブが再送信されることがわかります。

糸コンテナの故障または例外が発生した場合に、#2の試行を停止するにはどうすればよいですか?

enter image description here

これは、メモリ不足と「GCオーバーヘッド制限を超えた」問題が原因で発生していました。

21
codingtwinky

再試行の回数を制御する2つの設定があります(つまり、YARNでのApplicationMaster登録試行の最大回数は失敗したと見なされるため、全体Sparkアプリケーション):

  • spark.yarn.maxAppAttempts-Spark自身の設定。 MAX_APP_ATTEMPTS を参照してください:

    private[spark] val MAX_APP_ATTEMPTS = ConfigBuilder("spark.yarn.maxAppAttempts")
      .doc("Maximum number of AM attempts before failing the app.")
      .intConf
      .createOptional
    
  • yarn.resourcemanager.am.max-attempts-YARN独自の設定で、デフォルトは2です。

YarnRMClient.getMaxRegAttempts でわかるように)実際の数は、YARNの構成設定の最小値であり、Spark YARNが最後の手段です。

27
Jacek Laskowski

API /プログラミング言語に依存しないソリューションは、コマンドライン引数としてyarn maxの試行回数を設定することです。

spark-submit --conf spark.yarn.maxAppAttempts=1 <application_name>

@codeの answer を参照してください

13
RNHTTR

プロパティを追加しますyarn.resourcemanager.am.max-attemptsをyarn-default.xmlファイルに追加します。アプリケーションの最大試行回数を指定します。

詳細については、こちらをご覧ください link

3
Hamza Zafar