1

私はバッチ処理の問題に取り組んでいます。ソリューションは、障害のあるハードウェアを処理する必要があります。

マスター ノード (タスクの実行を開始する) と、ジョブを実行するワーカー ノードがあります。ワーカー ノードのフェイルオーバーのしくみは知っていますが、マスター ノードのフェイルオーバーに関する情報は見つかりませんでした。タスクを開始したマスター ノードが失敗するたびに、タスク全体がキャンセルされます。

タスクの処理を終了する方法はありますか?

マスターノードのフェイルオーバーを実装する最良の方法を提案できますか?

よろしく、クバ

4

1 に答える 1

2

マスター ノードが停止すると、基本的に MapReduce タスクの「削減」ステップを実行する人は誰もいません。

この問題を軽減するには、いくつかの方法があります。

  1. GridCheckpointSpi (GridTaskSession.saveCheckpoint(..) API) を使用して中間チェックポイントを保存すると、ノードのクラッシュ後にタスクが再起動したときに、保存されたチェックポイントがあるかどうかを確認してそこから開始できます。

  2. (1) と同じことを行いますが、代わりにデータ グリッドを使用します (GridCache API)。

  3. 「削減」を気にしない場合は、ジョブに「キャンセル」呼び出しを無視させ、完了時に結果をデータ グリッドに保存させるだけにします。

- 一番

于 2011-03-14T05:55:36.547 に答える