共用方式為


使用 Azure Toolkit for IntelliJ (預覽) 對失敗的 Spark 作業進行偵錯

此文章將逐步指引如何使用 Azure Toolkit for IntelliJ 中的 HDInsight 工具,執行 Spark 失敗偵錯應用程式。

必要條件

使用偵錯範本建立專案

建立 spark2.3.2 專案以繼續進行失敗偵錯,並取得此文件中的失敗作業偵錯範例檔案。

  1. 開啟 IntelliJ IDEA。 開啟 [New Project] \(新增專案\) 視窗。

    a. 選取左窗格中的 [Azure Spark/HDInsight]

    b. 從主視窗選取 [Spark Project with Failure Task Debugging Sample(Preview)(Scala)] \(具有失敗工作偵錯範例的 Spark 專案 (預覽) (Scala)\)。

    Intellij 建立偵錯專案。

    c. 選取 [下一步]。

  2. 在 [New Project] \(新增專案\) 視窗中,執行下列步驟:

    Intellij 新增項目選取 Spark 版本。

    a. 輸入專案名稱和專案位置。

    b. 在 [Project SDK] \(專案 SDK\) 下拉式清單中,針對 [Spark 2.3.2] 叢集選取 [Java 1.8]

    c. 在 [Spark Version] \(Spark 版本\) 下拉式清單中,選取 [Spark 2.3.2 (Scala 2.11.8)]

    d. 選取 [完成]。

  3. 選取 src>main \(主要\)>scala 以在專案中開啟您的程式碼。 此範本使用 AgeMean_Div() 指令碼。

在 HDInsight 叢集上執行 Spark Scala/JAVA 應用程式

建立 spark Scala​/JAVA 應用程式,然後執行下列步驟,在 Spark 叢集上執行應用程式:

  1. 按一下 [Add Configuration] \(新增設定\) 以開啟 [Run/Debug Configurations] \(執行/偵錯設定\) 視窗。

    HDI Intellij 新增設定。

  2. 在 [Run/Debug Configurations] \(執行/偵錯設定) 對話方塊中,選取加號 (+)。 然後,選取 [Apache Spark on HDInsight] \(HDInsight 上的 Apache Spark\) 選項。

    Intellij 新增組態。

  3. 切換至 [在叢集中遠端執行] 索引標籤。輸入 [Name] \(名稱\)[Spark cluster] \(Spark 叢集\) 和 [Main class name] \(主要類別名稱\)。 我們的工具支援使用執行程式進行偵錯。 numExecutors,預設值為 5,而且您最好不會設定高於 3。 若要減少執行階段,您可以將 spark.yarn.maxAppAttempts 新增至 [job Configurations] \(作業設定\),並將值設定為 1。 按一下 [OK] \(確定\) 按鈕以儲存設定。

    Intellij 執行新的偵錯組態。

  4. 設定現在會使用您提供的名稱儲存。 若要檢視設定詳細資訊,請選取設定名稱。 若要進行變更,請選取 [Edit Configurations] \(編輯設定\)

  5. 完成組態設定之後,您可以針對遠端叢集執行專案。

    Intellij 偵錯遠端 Spark 作業遠端執行按鈕。

  6. 您可以從輸出視窗檢查應用程式識別碼。

    Intellij偵錯遠端 Spark 作業遠端執行結果。

下載失敗的作業設定檔

​如果作業提交失敗,您可以將失敗的作業設定檔下載到本機電腦,以進行進一步偵錯。

  1. 開啟 [Microsoft Azure 儲存體總管]、找出失敗作業之叢集的 HDInsight 帳戶、從對應的位置 (\hdp\spark2-events\.spark-failures\<應用程式識別碼>) 將失敗的作業資源下載至本機資料夾。[活動] 視窗將顯示下載進度。

    Azure 儲存體 總管下載失敗。

    Azure 儲存體 檔案總管下載成功。

設定本機偵錯環境並在失敗時進行偵錯​

  1. 開啟原始專案或建立新的專案,並將它與原來的原始程式碼產生關聯。目前僅支援 spark2.3.2 版本進行失敗偵錯。

  2. 在 IntelliJ IDEA 中,建立 [Spark Failure Debug] \(Spark 失敗偵錯\) 設定檔,並針對 [Spark Job Failure Context location] \(Spark 作業失敗內容位置\) 欄位,選取先前下載之失敗作業資源中的 FTD 檔案。

    crete 失敗設定。

  3. 按一下工具列中的本機執行按鈕,錯誤將顯示於 [Run] \(執行\) 視窗中。

    run-failure-configuration1。

    run-failure-configuration2。

  4. 按照記錄指示設定中斷點,然後按一下本機偵錯按鈕以執行本機偵錯,就像您在 IntelliJ 中的一般 Scala/Java 專案一樣。

  5. 偵錯之後,如果專案成功完成​​,您可以將失敗的作業重新提交至 HDInsight 叢集上的 Spark。

下一步

案例

建立及執行應用程式

工具和延伸模組

管理資源