外部プログラム並列実行機能では、外部プログラムから返される復帰値の最大値を外部プログラム並列実行コマンドに返します。
デフォルトでは外部プログラムから返される復帰値の最大値が「128」を超えた場合、ジョブ失敗のメッセージを出力します。このときJobTrackerのステータスは成功(SUCCEEDED)となり、Hadoop出力データファイルは保持されます。
ジョブをエラーとして扱う復帰値のしきい値は、MapReduce設定ファイルで変更することができます。
また、外部プログラムの再実行を行う復帰値のしきい値を設定することにより、タスクごとに外部プログラムの再実行を行うことができます。(設定しない場合、デフォルト値は255のため再実行は行われません)
しきい値を超える復帰値が外部プログラムから返された場合、外部プログラム並列実行機能はTaskTrackerに異常終了を通知します。TaskTrackerは、あらかじめ設定された最大試行回数分外部プログラムの再実行を繰り返しますが、同じタスクが最大試行回数分のエラーを繰り返すと、Hadoopジョブをエラーとして終了します。このときその他の実行中のタスクは強制終了し、Hadoop出力データファイルは完了済のタスクから出力されたものを含めて、すべて削除されます。
外部プログラムの再実行を行う復帰値のしきい値は、MapReduce設定ファイルで変更することができます。