跳至內容

如何解決 Amazon EMR 中的「找不到工作階段『0』」和「傳送 http 請求時發生錯誤,重試已達最大次數」錯誤?

1 分的閱讀內容
0

我想對在 Amazon EMR 上使用 Jupyter 筆記本執行 Apache Livy 應用程式時收到的錯誤進行疑難排解。

解決方法

當您在 Amazon EMR 上使用 Jupyter 筆記本執行 Apache Livy 應用程式時,可能會收到以下其中一個錯誤:

  • 來自 xxxxxxxx 的「404」,錯誤承載為:「找不到工作階段『0』」
  • 「程式碼因嚴重錯誤而失敗: 傳送 http 請求時發生錯誤,重試已達最大次數。」

當您執行 Jupyter Notebook 工作階段直到逾時時,您會收到上述錯誤。若要解決這些錯誤,請增加主節點上 /etc/livy/conf/livy.conflivy.server.session.timeout 屬性的值。然後,重新啟動 livy-server

您可以在正在執行的 Amazon EMR 叢集上或在啟動新叢集時,修改 livy.server.session.timeout 屬性。

在正在執行的叢集上修改 livy.server.session.timeout

請完成下列步驟:

  1. 在作用中的主節點上開啟 /etc/livy/conf/livy.conf
  2. 修改 livy.server.session.timeout 值:
    sudo vim /etc/livy/conf/livy.conflivy.server.session.timeout 2h
    **注意:**將 2h 替換為符合您需求的值。預設值為 1 小時。
  3. 若要重新啟動 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 筆記本

AWS 官方已更新 8 個月前