【AWS】起動中の EMR に Session Manager を使って入る

■ はじめに

起動中の EMR に Session Manager を使って入る方法や
デバッグについて、メモしておく。

今回の収穫は、lynxコマンド(テキストベースのブラウザ表示)
ってを学べたこと。

後日談:
設定については、以下の関連記事を参照のこと

Amazon EMR ~ Session Managerを設定する ~
https://dk521123.hatenablog.com/entry/2023/08/16/201948

目次

【0】前提条件
【1】起動EMR 内に Session Manager を使って入る
【2】Hive コマンドを実行する
【3】EMR上で Web UI へのアクセス
 補足:lynxコマンド
【4】ログ
 1)Hive ログ
 2)EMR Step ログ
 3)YARN ログ
【5】設定ファイル
 1)hdfs-site.xml etc

【0】前提条件

* EMR に対して、Session Managerの設定がされていること
 => 例えば、SSM Agent のインストールやIAMロールの設定など

AWS Systems Manager ~ Session Manager ~
https://dk521123.hatenablog.com/entry/2020/04/09/215235

【1】起動EMR 内に Session Manager を使って入る

[1] AWS コンソールマネージメントから [EC2]-[Instances]で
 EC2一覧画面を表示する

[2] 「Security group name」などを参考に対象EC2インスタンスを選択

[3] 画面右上付近にある「Connect」ボタン押下

[4] 「Session Manager」タブの「Connect」ボタン押下

【2】Hive コマンドを実行する

[1] 「sudo su」などのコマンドで root になる
 => 「EMR」って表示されるかも、、、

[2] 「sudo su <使用しているユーザ(e.g. hadoop)>」などのコマンド
  EMRを起動している対象ユーザになる
 (直接だったらうまくいかなかった)

[3] 「hive」コマンドでHiveを起動する

【3】EMR上で Web UI へのアクセス

 実行結果のエラーメッセージで
「For more detailed output, check the application tracking page:
http://ip-###-##-##-###.us-west-2.compute.internal:8088/cluster/app/application_xxx」
などの表示がされるが、SSHトンネルを使わないと直接は見れない。

で、調べていたら、以下の公式サイトに簡易的な方法だが見れる方法が
紹介されていたので、メモ。

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html
コマンド例

# lynx <URL>
lynx http://ip-###-##-##-###.us-west-2.compute.internal:8088/cluster/app/application_xxx

補足:lynxコマンド

* ターミナルで動作するテキストベースのブラウザ

cf. lynx(リンクス) = オオヤマネコ

http://smartphone24365.blogspot.com/2016/02/lynx.html
https://www.linuxmaster.jp/linux_skill/2005/10/032lynx-web.html

【4】ログ

ログの格納場所について、以下の公式サイトなどが参考になる

https://aws.amazon.com/jp/premiumsupport/knowledge-center/logs-hive-queries-amazon-emr/
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-debugging.html

1)Hive ログ

* /mnt/var/log/hive/
* /mnt/var/log/hive/user/<user(e.g. hadoop (デフォルトユーザー))>

コマンド例

cd /mnt/var/log/hive/user/hadoop
tail -20 hive.log

2)EMR Step ログ

* /var/log/hadoop/steps/<Step ID>

コマンド例

cd /var/log/hadoop/steps/s-3C4CZ9G05FEAX

 ls -ltr
total 12
-rw-rw-r-- 1 hadoop hadoop 0 May 25 21:09 syslog
-rw-rw-r-- 1 hadoop hadoop 1304 May 25 21:09 stdout
-rw-rw-r-- 1 hadoop hadoop 213 May 25 21:09 stderr
-rw-rw-r-- 1 hadoop hadoop 2589 May 25 21:09 controller

3)YARN ログ

https://aws.amazon.com/jp/premiumsupport/knowledge-center/emr-node-label-yarn-resourcemanager/

より

* /var/log/hadoop-yarn/yarn-yarn-resourcemanager-*.log

【5】設定ファイル

1)hdfs-site.xml etc

* /etc/hadoop/conf/ 配下に設定ファイル群がある
 + hdfs-site.xml
 + core-site.xml
 + yarn-site.xml
 + hadoop-env.sh
etc... 

関連記事

Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
Amazon EMR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/27/175610
Amazon EMR ~ EMRFS ~
https://dk521123.hatenablog.com/entry/2020/11/13/145545
Amazon EMR ~ Session Managerを設定する ~
https://dk521123.hatenablog.com/entry/2023/08/16/201948
EMRでINSERTを実行した際に Fail する
https://dk521123.hatenablog.com/entry/2022/05/14/001031
AWS Systems Manager ~ Session Manager ~
https://dk521123.hatenablog.com/entry/2020/04/09/215235