IBM Cloud Docs
Spark 历史服务器

Spark 历史服务器

在 IBM Analytics Engine 实例上提交的 Spark 应用程序将其 Spark 事件转发到定义为 实例主目录的 Object Storage 存储区。 Spark 历史记录服务器提供 Web UI 来查看这些 Spark 事件。 Web UI 通过显示如下有用信息来帮助您分析 Spark 应用程序的运行方式:

  • 应用程序在运行时经历的阶段的列表
  • 每个阶段中的任务数
  • 配置详细信息,例如正在运行的执行程序和内存使用情况

请参阅 Spark History 服务器文档 以获取更多详细信息。

您可以通过在 Spark 应用程序配置中将属性 spark.eventLog.enabled 设置为 false 来禁用从 Spark 应用程序转发 Spark 事件。

启动和停止 Spark 历史记录服务器

在访问 Spark 历史记录服务器之前,需要启动该服务器。 当您不再需要它时,应该停止服务器。 将向您收取 Spark 历史记录服务器在运行时所使用的 CPU 核心和内存的费用。

可以使用以下命令来启动和停止 Spark 历史记录服务器:

Analytics Engine REST API

您可以使用 Analytics Engine REST API:

  1. 查看 Spark 历史记录服务器的状态

    curl "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    
  2. 启动 Spark 历史记录服务器

    curl --location --request POST "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    
  3. 停止 Spark 历史记录服务器

    curl --location --request DELETE "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    

Analytics Engine 实例 UI

您可以使用 Analytics Engine 实例 UI: ​

  1. 要查看 Spark 历史记录服务器状态:

    1. IBM Cloud 上打开资源列表。
    2. 单击 服务和软件,然后选择实例以打开详细信息页面。
    3. 选择 Spark 历史记录 选项卡。 服务器的当前状态显示在此页面上。

    如果 Spark 历史记录服务器的状态设置为 Started,那么您还可以单击 查看 Spark 历史记录 以在新的浏览器选项卡中启动 Spark 历史记录服务器的 Web UI。

  2. 要启动 Spark 历史记录服务器:

    1. Spark history 页面上,单击 启动历史记录服务器
    2. 选择服务器配置,然后单击 启动 以启动 Spark 历史记录服务器。
  3. 要停止 Spark 历史记录服务器:

    1. Spark history 页面上,单击 停止历史记录服务器

打开 Spark 历史记录服务器 Web UI

通过打开 Analytics Engine 服务实例的实例详细信息页面,切换到 Spark 历史记录 选项卡并单击 查看 Spark 历史记录,可以打开 Spark 历史记录 Web UI。

或者,可以通过作为服务密钥 (也称为服务凭证) 提供给您的服务端点来获取 Spark 历史服务器 Web UI URL。 请参阅 检索服务端点

在打开 Web UI之前,请确保 Spark 历史记录服务器正在运行。

由于未随 Spark 事件一起保留日志,因此 Spark 历史服务器 UI 的“阶段”和“执行程序”选项卡下的日志链接将无法工作。 要查看任务和执行程序日志,请启用平台日志记录。 有关详细信息,请参阅 配置和查看日志

要在 Spark 历史服务器 UI 上查看较旧的应用程序,请使用以下命令将 spark-events 从旧路径复制到新路径: ibmcloud cos object-copy --bucket <destination_bucket> --key /spark-events/<eventlog_app-1>-- copy-source /spark-events/<eventlog_app-1>

访问 Spark 历史服务器 REST API

除 Web UI 外,Spark 历史记录服务器还提供 REST API,可查询该 API 以查看 Spark 应用程序生成的 Spark 事件。 Spark 历史记录服务器 REST API 可用作服务密钥 (也称为服务凭证) 中的服务端点。 请参阅 检索服务端点

调用 Spark 历史服务器 REST API 时,必须在 Authorization 头中指定 IAM 令牌作为不记名令牌。 E.g.

curl --location --request GET 'https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance id>/spark_history_api/v1/applications?status=completed' \
--header 'Authorization: Bearer <iam token>'

请参阅 Spark 历史服务器 REST API 文档 以获取更多详细信息。

定制 Spark 历史记录服务器

缺省情况下,Spark 历史记录服务器在运行时使用 1 CPU 核心和 4 GiB 内存。 如果希望 Spark 历史记录服务器使用更多资源,可以在 Analytics Engine 实例缺省配置中设置以下属性:

  • ae.spark.history-server.cores 表示 CPU 核心数
  • ae.spark.history-server.memory 表示内存量

使用 REST API 更新 CPU 核心和内存设置

您可以使用 Analytics Engine REST API 更新 CPU 核心和内存设置,如下所示:

curl --location --request PATCH "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/default_configs" \
--header "Authorization: bearer <iam_token>" \
--header 'Content-Type: application/json' \
--data-raw '{
        "ae.spark.history-server.cores": "2",
        "ae.spark.history-server.memory": "8G"
}'

仅支持 Spark 驱动程序和执行程序 vCPU以及内存大小组合的预定义列表。 请参阅 支持的 Spark 驱动程序和执行程序 vCPU 和内存组合

其他定制

您可以通过向 Analytics Engine 实例的缺省 Spark 配置添加属性来进一步定制 Spark 历史服务器。 请参阅标准 Spark 历史记录配置选项

由于这是受管产品,因此无法定制所有标准 Spark 配置选项。

有关受支持的配置和设置的缺省值的列表,请参阅 缺省 Spark 配置

最佳实践

当您不再需要使用 Spark 历史记录服务器时,请始终停止该服务器。 请记住,Spark 历史记录服务器在其状态为 Started 时持续使用 CPU amd 内存资源。