Jupyter ノートブックを使用して Amazon EMR で Apache Livy アプリケーションを実行する際に発生するエラーをトラブルシューティングしたいです。
解決策
Jupyter ノートブックを使用して Amazon EMR で Apache Livy アプリケーションを実行する際、次のいずれかのエラーが発生する場合があります。
- ######## から '404 が返され、ペイロードで次のエラーが発生します。「session '0' not found」
- 「The code failed because of a fatal error: Error sending http request and maximum retry encountered」 (http リクエストの送信中にエラーが発生しました。最大再試行回数に達しました)
Jupyter Notebook セッションがタイムアウトするまで実行した場合、上記のエラーが発生します。これらのエラーを解決するには、プライマリノードの /etc/livy/conf/livy.conf で livy.server.session.timeout プロパティの値を増やしてから、livy-server を再起動します。
livy.server.session.timeout プロパティは、実行中の Amazon EMR クラスターで変更するか、新しいクラスターを起動する際に変更することができます。
実行中のクラスターで livy.server.session.timeout を変更する
次の手順を実行します。
- アクティブなプライマリノードにある /etc/livy/conf/livy.conf を開きます。
- livy.server.session.timeout の値を変更します。
sudo vim /etc/livy/conf/livy.conflivy.server.session.timeout 2h
注: 2h は、要件に応じた値に置き換えます。デフォルトの値は 1 時間です。
- livy-server を再起動するには、バージョン要件に応じて、アクティブなプライマリノード上で次のいずれかのコマンドを実行します。
Amazon EMR バージョン 5.30.0 以降、Amazon EMR 6 シリーズ、Amazon Linux 2 上の Amazon EMR 7 シリーズでは、次のコマンドを実行します。
sudo systemctl stop livy-server
sudo systemctl start livy-server
Amazon EMR リリースバージョン 5.29.0 以前では、次のコマンドを実行します。
sudo stop livy-server
sudo start livy-server
注: **livy-server ** の再起動時には、クラスターにアクセスできなくなります。ダウンタイムを回避するには、Amazon EMR クラスターを起動する際に Apache Livy アプリケーションを設定します。
新しいクラスターで livy.server.session.timeout を変更する
Amazon EMR バージョン 4.6.0 以降を使用してクラスターを起動する際、設定オブジェクトを追加します。
例
[
{
"Classification": "livy-conf",
"Properties": {
"livy.server.session.timeout-check": "true",
"livy.server.session.timeout": "2h",
"livy.server.yarn.app-lookup-timeout": "120s"
}
}
]
次の関連するプロパティを変更してもかまいません。
- livy.server.session.timeout-check プロパティを有効にすると、Apache Livy はタイムアウトのしきい値に達したアイドルセッションを停止します。デフォルト設定は true です。
- livy.server.yarn.app-lookup-timeout プロパティは、Apache Livy が YARN アプリケーションを探す期間です。この期間を超えると、アプリケーションは存在しないと見なされます。デフォルト設定は 60s です。
ジョブの実行後、Jupyter または Zeppelin のセッションを必ず閉じてください。開いているセッションが多すぎると、リソースが使用可能になるまで新しいジョブを開始できません。
関連情報
Apache Livy
Amazon EMR における Jupyter Notebook