使用 EMR Studio 调试应用程序和作业 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 EMR Studio 调试应用程序和作业

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

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

注意

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

有关配置和使用应用程序接口的信息,请参阅YARN时间轴服务器监控和检测Tez UI 概述

调试在亚马逊上EMR运行的亚马逊EC2作业

Workspace UI
从 Notebook 文件启动集群上 UI

当你使用亚马逊EMR发行版 5.33.0 及更高版本时,你可以从工作区的笔记本启动 Spark 网络用户界面(Spark UI 或 Spark History Server)。

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

重要

为了让 EMR Studio 能够从工作区启动集群上的应用程序用户界面,集群必须能够与 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 中,打开您要使用的工作区,并确保它已连接到在其上运行的 Amazon EMR 集群EC2。有关说明,请参阅 将计算机连接到 EMR Studio 工作空间

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

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

    注意

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

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

    启动 Spark 用户界面后,可以在浏览器URL中修改以打开YARN ResourceManager 或 Yarn Timeline Server。将下列路径之一添加到 amazonaws.com 之后。

    Web UI 路径 示例已修改 URL
    YARN ResourceManager /rm https://j-examplebby5ij.emrappui-prod。 eu-west-1.amazonaws.co /rm
    Yarn 时间线服务器 /yts https://j-examplebby5ij.emrappui-prod。 eu-west-1.amazonaws.co /yts
    Spark 历史记录服务器 /shs https://j-examplebby5ij.emrappui-prod。 eu-west-1.amazonaws.co /shs
Studio UI
从 EMR Studio 用户界面启动永久YARN时间轴服务器、Spark 历史服务器或 Tez 用户界面
  1. 在您的 EMR Studio 中,选择页面左侧的亚马EMR逊,打开 “EC2集群中的亚马逊 EMR” 列表。EC2

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

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

在EMR无服务器上运行的调试EMR工作室

与在亚马逊上EMR运行的 Amazon 类似EC2,您可以使用 Workspace 用户界面来分析您的EMR无服务器应用程序。在工作区用户界面中,当你使用亚马逊 6.14.0 及更高EMR版本时,你可以从工作区中的笔记本启动 Spark 网络用户界面(Spark UI 或 Spark History Server)。为方便起见,我们还提供了指向驱动程序日志的链接,便于您快速访问 Spark 驱动程序日志。

使用 Spark 历史服务器EMR在EKS作业运行时调试 Amazon

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

  • 当您使用带有 Amazon EMR on EKS 托管终端节点的 EMR Studio 提交任务运行时,您可以从工作区中的笔记本文件启动 Spark 历史服务器。

  • 当你使用 AWS CLI 或 AWS SDK for Amaz EMR on 提交任务运行时EKS,你可以从 EMR Studio 用户界面启动 Spark History Server。

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

从 EMR Studio 工作区中的笔记本文件启动 Spark 历史服务器
  1. 打开一个连接到 Amazon EMR on EKS 集群的工作空间。

  2. 在 Workspace 中选择并打开 Notebook 文件。

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

从 EMR Studio 用户界面启动 Spark 历史服务器
注意

EMRStudio 用户界面中的任务列表仅显示您使用 AWS CLI 或 AWS SDK在 Amazon EMR 上提交的任务运行EKS。

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

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

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

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

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