デバッグの詳細ステップ
Amazon EMR ステップが失敗し、バージョン 5.x 以降の AMI で API オペレーションを使用して作業を送信した場合、Amazon EMR は、場合によってはステップ障害の根本原因を識別して、関連するログファイル名と、API によるアプリケーションスタック追跡の一部を返すことができます。たとえば、以下の障害を識別できます。
-
出力ディレクトリがすでに存在する、入力ディレクトリが存在しない、またはアプリケーションがメモリ不足になる、といった一般的な Hadoop エラー。
-
アプリケーションが互換性がないバージョンの Java でコンパイルされている、または、見つからないメインクラスで実行されている、といった Java のエラー。
-
Amazon S3 に格納されたオブジェクトへのアクセスの問題。
この情報は、DescribeStep および ListSteps API オペレーションを使用して確認できます。これらの操作によって StepSummary の FailureDetails フィールドが返されます。FailureDetails 情報にアクセスするには、AWS CLI、コンソール、または AWS SDK を使用します。
Amazon EMR コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「コンソールの新機能」を参照してください。
- New console
-
新しい Amazon EMR コンソールにはステップのデバッグ機能はありません。ただし、クラスターの終了に関する詳細を次の手順で確認できます。
新しいコンソールを使用して失敗の詳細を表示するには
-
AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。
-
左側のナビゲーションペインの [EMR on EC2] で [クラスター] を選択し、表示するクラスターを選択します。
-
クラスターの詳細ページの [概要] セクションに表示される [ステータス] 値を書き留めます。ステータスが [エラーで終了しました] の場合は、テキストにカーソルを合わせるとクラスターの障害の詳細が表示されます。
- Old console
-
古いコンソールを使用して失敗の詳細を表示するには
新しい Amazon EMR コンソールに移動し、サイドナビゲーションから [古いコンソールに切り替え] を選択します。古いコンソールに切り替えたときの動作の詳細については、「Using the old console」を参照してください。
-
クラスターリストを選択し、クラスターを選択します。
-
詳細を表示するには、各ステップの隣にある矢印アイコンを選択します。ステップが失敗して Amazon EMR が根本原因を識別できる場合、失敗の詳細が表示されます。
- CLI
-
AWS CLI を使用して失敗の詳細を表示するには
-
AWS CLI を使用してステップの失敗の詳細を取得するには、describe-step
コマンドを使用します。
aws emr describe-step --cluster-id j-1K48XXXXXHCB --step-id s-3QM0XXXXXM1W
出力は以下のようになります。
{
"Step": {
"Status": {
"FailureDetails": {
"LogFile": "s3://myBucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz",
"Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://myBucket/logs/beta already exists",
"Reason": "Output directory already exists."
},
"Timeline": {
"EndDateTime": 1469034209.143,
"CreationDateTime": 1469033847.105,
"StartDateTime": 1469034202.881
},
"State": "FAILED",
"StateChangeReason": {}
},
"Config": {
"Args": [
"wordcount",
"s3://myBucket/input/input.txt",
"s3://myBucket/logs/beta"
],
"Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar",
"Properties": {}
},
"Id": "s-3QM0XXXXXM1W",
"ActionOnFailure": "CONTINUE",
"Name": "ExampleJob"
}
}