使用 EMR Studio 對應用程式和作業偵錯 - Amazon EMR

使用 EMR Studio 對應用程式和作業偵錯

使用 Amazon EMR Studio,可以啟動資料應用程式介面,在瀏覽器中分析應用程式和作業執行。

也可以從 Amazon EMR 主控台中為 EC2 叢集上執行的 Amazon EMR 啟動持續性、叢集外使用者介面。如需更多詳細資訊,請參閱 檢視持續應用程式使用者介面

注意

視您的瀏覽器設定而定,您可能需要啟用快顯視窗才能開啟應用程式 UI。

如需有關設定和使用應用程式介面的相關資訊,請參閱 YARN Timeline Server監控和檢測Tez UI 概觀

對 Amazon EC2 作業上執行的 Amazon EMR 進行偵錯

Workspace UI
從筆記本檔案中啟動叢集上的 UI

當您使用 Amazon EMR 發行版本 5.33.0 及更新版本時,可以從工作區中的筆記本啟動 Spark 網頁使用者介面 (Spark UI 或 Spark 歷史記錄伺服器)。

叢集上的 UI 可與 PySpark、Spark 或 SparkR 核心搭配使用。Spark 事件日誌或容器日誌的最大可檢視檔案大小為 10 MB。如果日誌檔案超過 10 MB,建議使用持久性 Spark 歷史記錄伺服器而非叢集上的 Spark UI 來偵錯作業。

重要

為了讓 EMR Studio 能夠從工作區中啟動叢集上的應用程式使用者介面,叢集必須能夠與 Amazon API Gateway 進行通訊。必須設定 EMR 叢集以允許將網路流量傳出到 Amazon API Gateway,並確保可從叢集存取 Amazon API Gateway。

Spark UI 透過解析主機名稱來存取容器日誌檔案。如果使用自訂域名稱,則必須確保可以透過 Amazon DNS 或您指定的 DNS 伺服器來解析叢集節點的主機名稱。因此,請為與叢集關聯的 Amazon 虛擬私有雲端 (VPC) 設定動態主機組態協定 (DHCP) 選項。如需 DHCP 選項的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的 DHCP 選項集

  1. 在 EMR Studio 中,開啟要使用的工作區,並確認工作區已附接至在 EC2 上執行的 Amazon EMR 叢集。如需說明,請參閱 將運算附接至 EMR Studio 工作區

  2. 開啟一個筆記本檔案,並使用 PySpark、Spark 或 SparkR 核心。若要選取核心,請從筆記本工具列右上角選擇核心名稱,以開啟選取核心對話方塊。如果未選擇核心,名稱會顯示為 No Kernel!

  3. 執行筆記本程式碼。當您啟動 Spark 內容時,下列項目會顯示為筆記本中的輸出。可能需要幾秒鐘才會顯示。如果已啟動 Spark 內容,可以隨時執行 %%info 命令以存取 Spark UI 的連結。

    注意

    如果 Spark UI 連結無法運作或幾秒鐘後仍未出現,請建立新的筆記本儲存格,然後執行 %%info 命令以重新產生連結。

    
                    Spark 應用程式主要資訊的螢幕擷取畫面,含有 Spark UI 的連結。當您執行 Spark 應用程式時,連結會出現在筆記本中。
  4. 若要啟動 Spark UI,請選擇 Spark UI 下的連結。若 Spark 應用程式正在執行,Spark UI 會在新標籤中開啟。如果應用程式已完成,則會改為開啟 Spark 歷史記錄伺服器。

    啟動 Spark UI 後,可以在瀏覽器中修改 URL,以開啟 YARN ResourceManager 或 Yarn Timeline Server。在 amazonaws.com 之後新增下列其中一個路徑。

    Web UI 路徑 已修改的 URL 範例
    YARN ResourceManager /rm https://j-examplebby5ij.emrappui-prod.eu-west-1.amazonaws.com/rm
    Yarn Timeline Server /yts https://j-examplebby5ij.emrappui-prod.eu-west-1.amazonaws.com/yts
    Spark 歷史記錄伺服器 /shs https://j-examplebby5ij.emrappui-prod.eu-west-1.amazonaws.com/shs
Studio UI
從 EMR Studio UI 中啟動持久性 YARN Timeline Server、Spark 歷史記錄伺服器或 Tez UI
  1. 在 EMR Studio 中,選取頁面左側的 Amazon EMR on EC2,以開啟 Amazon EMR on EC2 叢集清單。

  2. 在搜尋方塊中輸入值,依名稱狀態ID 來篩選叢集清單。也可以依建立時間範圍進行搜尋。

  3. 選取叢集,然後選擇啟動應用程式 UI 以選取應用程式使用者介面。應用程式 UI 會在新瀏覽器索引標籤中開啟,可能需要一點時間才能載入。

對 EMR Serverless 上執行的 EMR Studio 進行偵錯

與在 Amazon EC2 上執行的 Amazon EMR 類似,可以使用工作區使用者介面來分析 EMR Serverless 應用程式。在工作區 UI 中,當您使用 Amazon EMR 版本 6.14.0 及更新版本時,可以從工作區的筆記本中啟動 Spark 網頁使用者介面 (Spark UI 或 Spark 歷史記錄伺服器)。為了方便起見,我們還提供驅動程式日誌的連結,以便快速存取 Spark 驅動程式日誌。

使用 Spark 歷史記錄伺服器,對 Amazon EMR on EKS 作業執行進行偵錯

當您將作業執行提交至 Amazon EMR on EKS 叢集時,可以使用 Spark 歷史記錄伺服器存取該作業執行的日誌。Spark 歷史記錄伺服器提供用於監控 Spark 應用程式的工具,例如排程器階段和任務清單、RDD 大小和記憶體用量摘要以及環境資訊。可以透過下列方式,啟動適用於 Amazon EMR on EKS 作業執行的 Spark 歷史記錄伺服器:

  • 當您使用 EMR Studio 與 Amazon EMR on EKS 受管端點提交作業執行時,可以從作業區的筆記本檔案中啟動 Spark 歷史記錄伺服器。

  • 當您使用 AWS CLI 或適用於 Amazon EMR on EKS 的 AWS SDK 提交作業執行時,可以從 EMR Studio UI 中啟動 Spark 歷史記錄伺服器。

如需有關如何使用 Spark 歷史記錄伺服器的詳細資訊,請參閱 Apache Spark 文件中的監控和檢測。如需有關作業執行的詳細資訊,請參閱《Amazon EMR on EKS 開發指南》中的概念和元件

若要從 EMR Studio 工作區的筆記本檔案中啟動 Spark 歷史記錄伺服器
  1. 開啟連線至 Amazon EMR on EKS 叢集的工作區。

  2. 在工作區中選取並開啟您的筆記本檔案。

  3. 選擇筆記本檔案頂部的 Spark UI,在新標籤中開啟持久性 Spark 歷史記錄伺服器。

若要從 EMR Studio UI 中啟動 Spark 歷史記錄伺服器
注意

EMR Studio UI 中的作業清單只會顯示您使用 AWS CLI 或適用於 Amazon EMR on EKS 的 AWS SDK 提交的作業執行。

  1. 在您的 EMR Studio 中,選取頁面左側的 Amazon EMR on EKS

  2. 搜尋用於提交作業執行的 Amazon EMR on EKS 虛擬叢集。在搜尋方塊中輸入值,依狀態ID 來篩選叢集清單。

  3. 選取叢集以開啟其詳細資訊頁面。詳細資訊頁面會顯示叢集的相關資訊,例如 ID、命名空間和狀態。此頁面也會顯示提交至該叢集的所有作業執行清單。

  4. 在叢集詳細資訊頁面中,選取作業執行以進行偵錯。

  5. 作業清單右上角,選擇啟動 Spark 歷史記錄伺服器,在新瀏覽器標籤中開啟應用程式介面。