Amazon EMR
管理ガイド

ログファイルを表示する

Amazon EMR と Hadoop はいずれも、クラスターの状態を報告するログファイルを生成します。デフォルトで、ログファイルは /mnt/var/log/ ディレクトリのマスターノードに出力されます。クラスターの起動時に設定した方法に応じて、ログは Amazon S3 にアーカイブされる場合や、グラフィカルなデバッグツールを使用して表示できる場合があります。

さまざまな種類のログがマスターノードに出力されます。Amazon EMR は、ステップ、ブートストラップアクション、およびインスタンス状態ログを出力します。Apache Hadoop は、ジョブ、タスク、およびタスク試行の処理を報告するログを出力します。また、Hadoop は、デーモンのログも記録します。Hadoop から出力される情報の詳細については、http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html を参照してください。

マスターノードでログファイルを表示するには

次の表は、マスターノードに保存されるログファイルの一部を示しています。

場所 説明

/mnt/var/log/bootstrap-actions

ブートストラップアクションの処理中に出力されるログ。

/mnt/var/log/hadoop-state-pusher

Hadoop の状態プッシャープロセスで出力されるログ。

/mnt/var/log/instance-controller (Amazon EMR 4.6.0 以前)

/emr/instance-controller (Amazon EMR 4.7.0 以降)

インスタンスコントローラログ。

/mnt/var/log/instance-state

インスタンス状態ログ。ノードの CPU、メモリの状態、およびガベージコレクタースレッドに関する情報が含まれます。

/mnt/var/log/service-nanny (Amazon EMR 4.6.0 以前)

/emr/service-nanny (Amazon EMR 4.7.0 以降)

サービスナニープロセスで出力されるログ

/mnt/var/log/application

Hadoop、Spark、Hive などのアプリケーションに固有のログ。

mnt/var/log/hadoop/steps/N

ステップの処理に関する情報が含まれステップログ。N の値は、Amazon EMR によって割り当てられた stepId を示します。たとえば、クラスターに 2 つのステップ、s-1234ABCDEFGHs-5678IJKLMNOP があるとします。最初のステップは /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ に配置され、2 番目のステップは /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/ に配置されます。

The step logs written by Amazon EMR are as follows.

  • controller — Information about the processing of the step. If your step fails while loading, you can find the stack trace in this log.

  • syslog — Describes the execution of Hadoop jobs in the step.

  • stderr — The standard error channel of Hadoop while it processes the step.

  • stdout — The standard output channel of Hadoop while it processes the step.

マスターノードでログファイルを表示するには

  1. SSH を使用してマスターノードに接続する」の説明に従って、SSH を使用してマスターノードに接続します。

  2. 表示するログファイル情報が保存されているディレクトリに移動します。前述の表は、使用できるログファイルの種類とその保存場所の一覧です。次の例は、ID が s-1234ABCDEFGH のステップログに移動するコマンドを示しています。

    cd /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/
  3. 任意のファイルビューワーを使用してログファイルを表示します。次の例では、Linux の less コマンドを使用して controller ログファイルを表示します。

    less controller

Amazon S3 にアーカイブされたログファイルを表示する

デフォルトでは、コンソールを使用して起動した Amazon EMR クラスターは自動的に Amazon S3 にログファイルをアーカイブします。独自のログのパスを指定したり、コンソールが自動的にログのパスを生成することを許可したりできます。CLI または API を使用して起動されるクラスターについては、Amazon S3 ログのアーカイブを手動で設定する必要があります。

ログファイルを Amazon S3 にアーカイブするように Amazon EMR を設定している場合、指定した S3 の場所にファイルが保存されます。この例では、/JobFlowId/ フォルダです (JobFlowId はクラスター識別子です)。

次の表は、Amazon S3 に保存されるログファイルの一部を示しています。

場所 説明

/JobFlowId/node/

ブートストラップアクション、インスタンスの状態、ノードのアプリケーションログを含むノードログ。各ノードのログは、そのノードの EC2 インスタンス識別子が名前に付いたフォルダーに保存されます。

/JobFlowId/node/instanceId/application

アプリケーションに関連付けられた各アプリケーションまたはデーモンにより作成されたログ。たとえば、Hive サーバーログは JobFlowId/node/instanceId/hive/hive-server.log にあります。

/JobFlowId/steps/N/

ステップの処理に関する情報が含まれステップログ。N の値は、Amazon EMR によって割り当てられた stepId を示します。たとえば、クラスターに 2 つのステップ、s-1234ABCDEFGHs-5678IJKLMNOP があるとします。最初のステップは /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ に配置され、2 番目のステップは /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/ に配置されます。

The step logs written by Amazon EMR are as follows.

  • controller — Information about the processing of the step. If your step fails while loading, you can find the stack trace in this log.

  • syslog — Describes the execution of Hadoop jobs in the step.

  • stderr — The standard error channel of Hadoop while it processes the step.

  • stdout — The standard output channel of Hadoop while it processes the step.

/JobFlowId/containers

アプリケーションコンテナログ。各 YARN アプリケーションのログは、これらの場所に保存されます。

コンソールを使用して Amazon S3 にアーカイブされたログファイルを表示するには

  1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. Amazon S3 にログファイルをアーカイブするようにクラスターを設定したときに指定した S3 バケットを開きます。

  3. 表示する情報を含むログファイルに移動します。前述の表は、使用できるログファイルの種類とその保存場所の一覧です。

  4. ブラウザで表示するログファイルをダブルクリックします。

Amazon S3 コンソールでログファイルを表示しない場合は、Firefox ウェブブラウザ用 Amazon S3 Organizer プラグインなどのツールを使用するか、Amazon S3 からオブジェクトを取得するアプリケーションを作成して、Amazon S3 からローカルマシンにファイルをダウンロードします。詳細については、Amazon Simple Storage Service 開発者ガイド の·Getting Objects を参照してください。

デバッグツールでログファイルを表示する

Amazon EMR では、デバッグツールは自動的に有効になりません。クラスターの起動時にこれを設定する必要があります。

コンソールを使用してクラスターログを表示するには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Cluster List] ページで、表示したいクラスターの横にある詳細アイコンを選択します。

    [Cluster Details] ページが表示されます。[Steps] セクションで、各ステップの右側のリンクは、そのステップで使用できる様々なタイプのログを表示します。これらのログは、Amazon EMR によって生成されます。

  3. 特定のステップに関連付けられている Hadoop ジョブのリストを表示するには、そのステップの右にある [View Jobs] リンクを選択します。

  4. 特定のジョブに関連付けられてきる Hadoop タスクのリストを表示するには、そのジョブの右にある [View Tasks] リンクを選択します。

  5. 特定のタスクが実行した試行のリストを表示するには、そのタスクの右にある [View Attempts] リンクを選択します。

  6. タスク試行によって生成されたログを表示するには、タスク試行の右にある [stderr]、[stdout]、および [syslog] のリンクを選択します。

Amazon EMR がログファイルを Amazon S3 のバケットにアップロードすると、デバッグツールには、そのログファイルへのリンクが表示されます。ログファイルは 5 分ごとに Amazon S3 にアップロードされるため、ステップが完了してからログファイルのアップロードが完了するまでには、数分間かかることがあります。

Amazon EMR は、デバッグツールに表示される Hadoop のジョブ、タスク、およびタスク試行の状態を定期的に更新します。デバッグペインの [Refresh List] をクリックすると、これらの項目の最新のステータスを入手できます。