Amazon EMR で「session '0' not found」および「Error sending http request and maximum retry encountered」のエラーを解決する方法を教えてください。
最終更新日: 2019 年 9 月 24 日
Amazon EMR で Jupyter Notebook を使用して Apache Livy アプリケーションを実行すると、次のいずれかのエラーが発生します。
- '404' from xxxxxxxx with error payload: 「session '0' not found」
- 「The code failed because of a fatal error: Error sending http request and maximum retry encountered.」
簡単な説明
通常、これらのエラーは、Jupyter Notebook セッションをタイムアウトになるまで実行したままにすると発生します。これらのエラーを解決するには、マスターノードの /etc/livy/conf/livy.conf の livy.server.session.timeout プロパティの値を増やします。次に、livy-server を再起動します。
解決方法
実行中の Amazon EMR クラスターで、または新しいクラスターを起動するときに、livy.server.session.timeout を変更することができます。
実行中のクラスターの場合
1.マスターノードで /etc/livy/conf/livy.conf を開き、livy.server.session.timeout の値 (デフォルト値は 1 時間) を変更します。例:
sudo vim /etc/livy/conf/livy.conf
livy.server.session.timeout 2h
2. マスターノードで次のコマンドを実行して、livy-server を再起動します。
sudo stop livy-server
sudo start livy-server
livy-server の再起動中は、クラスターを使用できません。ダウンタイムを回避するには、Amazon EMR クラスターの起動時に Livy アプリケーションを設定します。
新しいクラスターの場合
Amazon EMR リリースバージョン 4.6.0 以降を使用してクラスターを起動するときに、次のような設定オブジェクトを追加します。livy.server.session.timeout の変更に加えて、必要に応じて以下の関連プロパティを変更することもできます。
- livy.server.session.timeout-check: 有効にすると、Livy はタイムアウトしきい値に達するアイドルセッションを停止します。デフォルト設定は true です。
- livy.server.yarn.app-lookup-timeout: Livy が YARN アプリケーションを失ったと見なすまでの時間。デフォルト設定は 60 秒です。
[
{
"Classification": "livy-conf",
"Properties": {
"livy.server.session.timeout-check": "true",
"livy.server.session.timeout": "2h",
"livy.server.yarn.app-lookup-timeout": "120s"
}
}
]
ジョブの実行が完了したら、必ず Jupyter または Zeppelin でセッションを閉じてください。開いているセッションが多すぎると、リソースが利用可能になるまで新しいジョブを開始できません。