ストリーミングクラスターのエラー - Amazon EMR

ストリーミングクラスターのエラー

ストリーミングエラーの原因は、通常、syslog ファイルで確認できます。ここには、[Steps] ペインで接続します。

ストリーミングクラスターの一般的なエラーを以下に示します。

データは間違った形式でマッパーに送信されていませんか?

これに該当するかを確認するには、タスク試行ログの失敗したタスク試行の syslog ファイルでエラーメッセージを検索します。詳細については、「 ログファイルを表示する」を参照してください。

スクリプトがタイムアウトしていませんか?

マッパーまたはリデューサースクリプトに対するデフォルトのタイムアウトは 600 秒です。スクリプトにこれ以上時間がかかる場合、タスクの試行は失敗します。タスク試行ログで失敗したタスク試行の syslog ファイルを確認して、これに該当するかを確認できます。詳細については、「 ログファイルを表示する」を参照してください。

mapred.task.timeout 設定に新しい値を設定して、制限時間を変更できます。この設定は、入力の読み取り、出力の書き込み、またはステータス文字列の更新がされなくなってから何ミリ秒後に、Amazon EMR がタスクを終了するかを指定します。追加のストリーミング引数 -jobconf mapred.task.timeout=800000 を渡して、この値を更新できます。

無効なストリーミング引数を渡していませんか?

Hadoop ストリーミングでは、次の引数のみがサポートされています。ここに示されていない引数を渡すと、クラスターは失敗します。

-blockAutoGenerateCacheFiles -cacheArchive -cacheFile -cmdenv -combiner -debug -input -inputformat -inputreader -jobconf -mapper -numReduceTasks -output -outputformat -partitioner -reducer -verbose

さらに、Hadoop ストリーミングでは、Java 構文を使って渡された引数、つまり先頭にハイフンが 1 つしか付いていない引数しか認識されません。先頭に 2 つのハイフンが付いている引数を渡すと、クラスターは失敗します。

スクリプトがエラーで終了しましたか?

マッパーまたはリデューサースクリプトがエラーで終了した場合、失敗したタスク試行のタスク試行ログの stderr ファイルでエラーを検索できます。詳細については、「 ログファイルを表示する」を参照してください。