Sparkジョブをspark-submit
経由で実行していますが、失敗した場合にジョブが再送信されることがわかります。
糸コンテナの故障または例外が発生した場合に、#2の試行を停止するにはどうすればよいですか?
これは、メモリ不足と「GCオーバーヘッド制限を超えた」問題が原因で発生していました。
再試行の回数を制御する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が最後の手段です。
API /プログラミング言語に依存しないソリューションは、コマンドライン引数としてyarn maxの試行回数を設定することです。
spark-submit --conf spark.yarn.maxAppAttempts=1 <application_name>
@codeの answer を参照してください
プロパティを追加しますyarn.resourcemanager.am.max-attempts
をyarn-default.xmlファイルに追加します。アプリケーションの最大試行回数を指定します。
詳細については、こちらをご覧ください link