使用 EMR Studio 调试应用程序和任务 - Amazon EMR

使用 EMR Studio 调试应用程序和任务

借助 Amazon EMR Studio,您可以启动数据应用程序界面,以便在浏览器中分析应用程序和任务运行情况。

您还可以从 Amazon EMR 控制台为在 EC2 集群上运行的 Amazon EMR 启动持久性的集群外用户界面。有关更多信息,请参阅 在 Amazon EMR 中查看持久性应用程序用户界面

注意

根据您的浏览器设置,您可能需要启用弹出窗口才能打开应用程序 UI。

有关配置和使用应用程序界面的信息,请参阅 YARN 时间线服务器监控和检测Tez UI 概览

调试 Amazon EC2 任务上运行的 Amazon EMR

Workspace UI
从笔记本文件启动集群上 UI

当您使用 Amazon EMR 发行版本 5.33.0 及更高版本时,您可以从 Workspace 中的笔记本启动 Spark Web 用户界面(Spark UI 或 Spark 历史记录服务器)。

集群上 UI 可与 PySpark、Spark 或 SparkR 内核配合使用。Spark 事件日志或容器日志的最大可查看文件大小为 10MB。如果您的日志文件超过 10MB,我们建议您使用持久性 Spark 历史记录服务器而不是集群上 Spark UI 来调试任务。

重要

为了让 EMR Studio 从 Workspace 启动集群上应用程序用户界面,集群必须能够与 Amazon API Gateway 进行通信。您必须配置 EMR 集群以允许网络流量传出到 Amazon API Gateway,并确保可从集群访问 Amazon API Gateway。

Spark UI 通过解析主机名来访问容器日志。如果您使用自定义域名,您必须确保您的集群节点的主机名可以由 Amazon DNS 或您指定的 DNS 服务器进行解析。为此,请为与您的集群关联的 Amazon Virtual Private Cloud(VPC)设置动态主机配置协议(DHCP)选项。有关 DHCP 选项的更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的 DHCP 选项集

  1. 在您的 EMR Studio 中,打开您要使用的 Workspace,并确保它附加到在 EC2 上运行的 Amazon EMR 集群。有关说明,请参阅 将计算资源附加到 EMR Studio Workspace

  2. 打开笔记本文件并使用 PySpark、Spark 或 SparkR 内核。要选择内核,请从笔记本工具栏的右上角选择内核名称以打开 Select Kernel (选择内核) 对话框。如果没有选择任何内核,名称显示为 No Kernel! (无内核!)

  3. 运行笔记本代码。启动 Spark 上下文时,以下内容将作为输出显示在笔记本中。它可能需要几秒钟时间才能显示。如果您已启动 Spark 上下文,则可以随时运行 %%info 命令以访问指向 Spark UI 的链接。

    注意

    如果 Spark UI 链接不起作用或几秒钟后未显示,请创建一个新的笔记本单元并运行 %%info 命令以重新生成链接。

    Spark 应用程序主信息的屏幕截图,包括指向 Spark UI 的链接。运行 Spark 应用程序时,该链接会显示在笔记本中。
  4. 要启动 Spark UI,请选择 Spark UI 下的 Link (链接)。如果您的 Spark 应用程序正在运行,Spark UI 将在新选项卡中打开。如果应用程序已完成,则会打开 Spark 历史记录服务器。

    启动 Spark UI 后,您可以在浏览器中修改 URL 以打开 YARN ResourceManager 或 Yarn 时间线服务器。将下列路径之一添加到 amazonaws.com 之后。

    Web UI 路径 修改后的 URL 示例
    YARN ResourceManager /rm https://j-examplebby5ij.emrappui-prod.eu-west-1.amazonaws.com/rm
    Yarn 时间线服务器 /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 时间线服务器、Spark 历史记录服务器或 Tez UI
  1. 在您的 EMR Studio 中,从页面的左侧选择 Amazon EMR on EC2 打开 Amazon EMR on EC2 集群列表。

  2. 通过在搜索框中输入值,按 name (名称)state (状态)ID 筛选集群列表。您还可以按创建时间范围进行搜索。

  3. 选择集群,然后选择 Launch application UIs (启动应用程序 UI) 以选择应用程序用户界面。应用程序 UI 将在新的浏览器选项卡中打开,加载可能需要一些时间。

调试在 EMR Serverless 上运行的 EMR Studio

与在 Amazon EC2 上运行的 Amazon EMR 类似,您可以使用 Workspace 用户界面来分析您的 EMR Serverless 应用程序。在 Workspace UI 中,当您使用 Amazon EMR 发行版 6.14.0 及更高版本时,您可以从 Workspace 中的笔记本电脑实例启动 Spark Web 用户界面(Spark UI 或 Spark 历史记录服务器)。为方便起见,我们还提供了指向驱动程序日志的链接,便于您快速访问 Spark 驱动程序日志。

使用 Spark 历史记录服务器调试 Amazon EMR on EKS 任务运行

当您向 Amazon EMR on EKS 集群提交任务运行时,可以使用 Spark 历史记录服务器访问该任务运行的日志。Spark 历史记录服务器提供了监控 Spark 应用程序的工具,例如:调度流程阶段和任务列表、RDD 大小和内存使用情况概述以及环境信息。您可以通过以下方式启动 Amazon EMR on EKS 任务运行的 Spark 历史记录服务器:

  • 当您使用具有 EMR on EKS 托管式端点的 Amazon EMR Studio 提交任务运行时,可以通过 Workspace 的笔记本文件启动 Spark 历史记录服务器。

  • 当您使用 Amazon EMR on EKS 的 AWS CLI 或者 AWS SDK 提交任务运行时,可以通过 EMR Studio UI 启动 Spark 历史记录服务器。

有关如何使用 Spark 历史记录服务器的信息,请参阅 Apache Spark 文档的监控和仪表。有关任务运行的更多信息,请参阅《Amazon EMR on EKS 开发指南》中的概念和组件

从 EMR Studio Workspace 中的笔记本文件启动 Spark 历史记录服务器
  1. 打开连接到 Amazon EMR on EKS 集群的 Workspace。

  2. 在 Workspace 中选择并打开笔记本文件。

  3. 选择笔记本文件顶部的 Spark UI,以在新选项卡打开持久性 Spark 历史记录服务器。

通过 EMR Studio UI 启动 Spark 历史记录服务器
注意

EMR Studio UI 中的任务列表仅显示:您使用 Amazon EMR on EKS 的 AWS CLI 或者 AWSSDK 提交的任务运行。

  1. 在您的 EMR Studio 中,从页面左侧选择 Amazon EMR on EKS

  2. 搜索您常用于提交任务运行的 Amazon EMR on EKS 虚拟集群。您可在搜索框中输入值,按 status (状态)ID 筛选集群列表。

  3. 选择集群以打开其详细信息页面。详细信息页面显示有关集群的信息,例如 ID、命名空间和状态。该页面还显示了提交至该集群的所有运行任务的列表。

  4. 在集群详细信息页面中选择要调试的任务运行。

  5. Jobs (任务) 列表的右上角,选择 Launch Spark History Server (启动 Spark 历史记录服务器),以在新的浏览器选项卡中打开应用程序界面。