我想對在 Amazon EMR 上使用 Jupyter 筆記本執行 Apache Livy 應用程式時收到的錯誤進行疑難排解。
解決方法
當您在 Amazon EMR 上使用 Jupyter 筆記本執行 Apache Livy 應用程式時,可能會收到以下其中一個錯誤:
- 來自 xxxxxxxx 的「404」,錯誤承載為:「找不到工作階段『0』」
- 「程式碼因嚴重錯誤而失敗: 傳送 http 請求時發生錯誤,重試已達最大次數。」
當您執行 Jupyter Notebook 工作階段直到逾時時,您會收到上述錯誤。若要解決這些錯誤,請增加主節點上 /etc/livy/conf/livy.conf 中 livy.server.session.timeout 屬性的值。然後,重新啟動 livy-server。
您可以在正在執行的 Amazon EMR 叢集上或在啟動新叢集時,修改 livy.server.session.timeout 屬性。
在正在執行的叢集上修改 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 筆記本