EMRで実行中のログは、EMR起動時にDebugging Toolをtrueにしていれば、5分後くらいにコンソールページで見ることができますが、毎回5分待つのがつらいので、すぐに確認したい場合は多いと思います。
そこで、起動中のEMRインスタンスにSSHでログインして、直接ログを見る方法をメモしておきます。
#EMRのセキュリティグループを変更する
まずは、SSHで使う22ポートを開放する必要があります。
EMRのセキュリティグループは、
- ElasticMapReduce-master
- ElasticMapReduce-slave
という名称で用意されていますので、セキュリティグループのページから、22番ポートを開放しておきましょう。
#マスターノードにログインしてログをtail
起動中のマスターノードのホスト名を、EMRのページの「Master public DNS」項目をみて調べます。
その調べた値を使って、SSHコマンドやPuttyでログインします。
ログインユーザー名は、「hadoop」になります。
例えばSSHの場合は、下記のようになります。
ssh hadoop@{調べたEMRのホスト名} -i {秘密鍵のパス}
接続に成功できれば、次はいよいよログをtailします。
ログはいくつか種類がありますが、例えばstepのエラーログは、下記に出力されています。
/mnt/var/log/hadoop/steps/{ステップ番号}/stderr
こちらをtailなどして確認しましょう。