你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Toolkit for IntelliJ 进行失败 Spark 作业调试(预览)

本文逐步介绍如何使用 Azure Toolkit for IntelliJ 中的 HDInsight 工具来运行 Spark 失败调试应用程序。

先决条件

使用调试模板创建项目

创建 spark2.3.2 项目以继续失败调试,并使用此文档中的失败任务调试示例文件。

  1. 打开 IntelliJ IDEA。 打开“新建项目”窗口。

    a. 在左窗格中选择“Azure Spark/HDInsight”。

    b. 从主窗口中选择“Spark 项目和失败任务调试示例(预览)(Scala)”。

    IntelliJ - 创建调试项目。

    c. 选择“下一步”。

  2. 在“新建项目”窗口中执行以下步骤:

    IntelliJ - 新建项目 - 选择 Spark 版本。

    a. 输入项目名称和项目位置。

    b. 在“项目 SDK”下拉列表中,选择适用于 Spark 2.3.2 群集的 Java 1.8

    c. 在“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. 单击“添加配置”,打开“运行/调试配置”窗口。

    HDI IntelliJ - 添加配置。

  2. 在“运行/调试配置”对话框中,选择加号 (+)。 然后选择“HDInsight 上的 Apache Spark”选项。

    IntelliJ - 添加新配置。

  3. 切换到“在群集中远程运行”选项卡。为“名称”、“Spark 群集” 和“Main 类名”输入信息。 工具支持使用“执行器”进行调试。 numExecutors,默认值为 5,设置的值最好不要大于 3。 若要减少运行次数,可以将 spark.yarn.maxAppAttempts 添加到“作业配置”中并将值设置为 1。 单击“确定”按钮,保存配置。

    IntelliJ - 运行调试配置 - 新建。

  4. 现已使用提供的名称保存配置。 若要查看配置详细信息,请选择配置名称。 若要进行更改,请选择“编辑配置”。

  5. 完成配置设置后,可以针对远程群集运行项目。

    IntelliJ - 调试远程 Spark 作业 -“远程运行”按钮。

  6. 可以在输出窗口中查看应用程序 ID。

    IntelliJ - 调试远程 Spark 作业 - 远程运行结果。

下载已失败作业的配置文件

如果作业提交失败,可以将已失败作业的配置文件下载到本地计算机进行进一步的调试。

  1. 打开 Microsoft Azure 存储资源管理器,找到已失败作业所在群集的 HDInsight 帐户,将已失败作业的资源从相应的位置 (\hdp\spark2-events\.spark-failures\<application ID>) 下载到本地文件夹。“活动”窗口将显示下载进度。

    Azure 存储资源管理器下载失败。

    Azure 存储资源管理器下载成功。

配置本地调试环境并在失败时进行调试

  1. 打开原始项目或创建新项目,并将其与原始源代码关联。目前仅支持 spark2.3.2 版本进行失败调试。

  2. 在 IntelliJ IDEA 中,创建一个 Spark 失败调试配置文件,从以前下载的已失败作业的资源中选择与“Spark 作业失败上下文位置”字段对应的 FTD 文件。

    创建故障配置。

  3. 单击工具栏中的本地运行按钮,错误就会显示在“运行”窗口中。

    run-failure-configuration1。

    run-failure-configuration2。

  4. 按日志指示设置断点,然后单击本地调试按钮进行本地调试,就像 IntelliJ 中的正常 Scala/Java 项目一样。

  5. 调试后,如果项目成功完成,则可将已失败作业重新提交到 Spark on HDInsight 群集。

后续步骤

方案

创建和运行应用程序

工具和扩展

管理资源