Amazon EMR で Hadoop ストリーミング ジョブを長時間実行しています (15 ノード、>1.5 時間)。ジョブは約 75% の完了レベルで失敗します。マッパーとリデューサーの両方に Python を使用しています。
次の最適化を行いました。
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
sys.stderr = os.fdopen(sys.stderr.fileno(), 'w', 0)
logging.getLogger().setLevel(logging.INFO)
logging
また、モジュールでログエントリを発行した直後に次を追加しました。
sys.stderr.flush()
time.sleep(30)
sys.exit(3)
無駄にエラーをキャッチしようとする: Hadoop ログ ファイルにエラーが表示されない :(
Hadoop でメッセージをログに記録し、ドロップしないようにするにはどうすればよいですか?