启动 Spark 历史记录服务器 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

启动 Spark 历史记录服务器

您可以使用在 EC2 实例上托管服务器的 AWS CloudFormation 模板启动 Spark 历史记录服务器,也可以使用 Docker 在本地启动 Spark 历史记录服务器。

使用 AWS CloudFormation 启动 Spark 历史记录服务器并查看 Spark UI

您可以使用 AWS CloudFormation 模板启动 Apache Spark 历史记录服务器并查看 Spark Web UI。这些模板是您应修改以满足要求的示例。

使用 AWS CloudFormation 启动 Spark 历史记录服务器并查看 Spark UI

  1. 选择下表中的 Launch Stack (启动堆栈) 按钮之一。这将在 AWS CloudFormation 控制台上启动堆栈。

    区域 View 启动
    美国东部(俄亥俄州) 查看
    美国东部(弗吉尼亚北部) 查看
    美国西部(加利福尼亚北部) 查看
    美国西部(俄勒冈) 查看
    亚太地区(香港) 查看
    亚太地区(孟买) 查看
    亚太区域(首尔) 查看
    亚太区域(新加坡) 查看
    亚太区域(悉尼) 查看
    亚太区域(东京) 查看
    加拿大 (中部) 查看
    欧洲(法兰克福) 查看
    欧洲(爱尔兰) 查看
    欧洲(伦敦) 查看
    欧洲(巴黎) 查看
    欧洲(斯德哥尔摩) 查看
    南美洲(圣保罗) 查看
  2. Specify template (指定模板) 页面上,选择 Next (下一步)

  3. Specify Stack details (指定堆栈详细信息) 页面上,输入 Stack name (堆栈名称)。选择 Parameters (参数),然后选择 Next (下一步)

    1. Spark UI 配置

      提供以下信息:

      • IP address range (IP 地址范围) — 可用于查看 Spark UI 的 IP 地址范围。如果要限制来自特定 IP 地址范围的访问,则应使用自定义值。

      • History server port (历史记录服务器端口) — 用于 Spark UI 的端口。您可以使用默认值。

      • Event log directory (事件日志目录) — 选择用于存储来自 AWS Glue 作业或开发终端节点的 Spark 事件日志的位置。您必须将 s3a:// 用于事件日志路径模式。

      • Spark package location (Spark 包位置) — 可以使用默认值。

      • Keystore path (密钥库路径) — HTTPS 的 SSL/TLS 密钥库路径。如果要使用自定义密钥库文件,则可在此处指定 S3 路径 s3://path_to_your_keystore_file。如果将此参数保留为空,则会生成并使用基于自签名证书的密钥库。

        注意

        对于基于自签名证书的密钥库,必须将连接到 Spark UI 的每台本地计算机配置为信任在连接到 Spark UI 之前生成的证书。此外,当生成的证书过期时,必须在所有本地计算机上生成并信任新的证书。有关设置的更多信息,请参阅自签名证书。有关更多信息,请参阅 Wikipedia 中的自签名证书

      • Keystore password (密钥库密码) — HTTPS 的 SSL/TLS 密钥库密码。

    2. EC2 实例配置

      提供以下信息:

      • Instance type (实例类型) — 托管 Spark 历史记录服务器的 Amazon EC2 实例的类型。由于此模板在您的账户中启动 Amazon EC2 实例,因此,将向您的账户单独收取 Amazon EC2 费用。

      • Latest AMI ID (最新 AMI ID) — Spark 历史记录服务器实例的 Amazon Linux 2 的 AMI ID。您可以使用默认值。

      • VPC ID — Spark 历史记录服务器实例的 Virtual Private Cloud (VPC) ID。可以使用您的账户中可用的任何 VPC。建议不要将默认 VPC 用于默认网络 ACL。有关更多信息,请参阅 Amazon VPC 用户指南 中的默认 VPC 和默认子网创建 VPC

      • Subnet ID (子网 ID) — Spark 历史记录服务器实例的 ID。您可以使用 VPC 中的任意子网。您必须能够从客户端访问子网。如果要通过 Internet 访问,则必须使用在路由表中具有 Internet 网关的公有子网。

  4. Configure stack options (配置堆栈选项) 页面上,选择 Next (下一步)

  5. Review (检查) 页面上,检查模板。选择 I acknowledge that AWS CloudFormation might create IAM resources (我确认,AWS CloudFormation 可能创建 IAM 资源),然后选择 Create stack (创建堆栈)

  6. 等待创建堆栈。

  7. 打开 Outputs (输出) 选项卡。

    1. 如果您使用的是公有子网,请复制 SparkUiPublicUrl 的 URL。

    2. 如果您使用的是私有子网,请复制 SparkUiPrivateUrl 的 URL。

  8. 打开 Web 浏览器,然后将 URL 粘贴到其中。这样一来,您便能在指定端口上使用 HTTPS 访问服务器。您的浏览器可能无法识别服务器的证书,在这种情况下,您必须重写其保护并继续进行。

使用 Docker 启动 Spark 历史记录服务器并查看 Spark UI

如果您更喜欢本地访问(不需要 Apache Spark 历史记录服务器的 EC2 实例),也可以使用 Docker 启动 Apache Spark 历史记录服务器并在本地查看 Spark UI。此 Dockerfile 是一个示例,您应修改该示例以满足您的要求。

先决条件

有关如何在笔记本电脑上安装 Docker 的信息,请参阅 Docker Engine 社区

使用 Docker 启动 Spark 历史记录服务器并在本地查看 Spark UI

  1. 从 GitHub 下载文件。

    1. AWS Glue 代码示例下载 Dockerfile 和 pom.xml

  2. 运行以下命令:

    1. AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 替换为您的有效 AWS 凭证。

    2. s3a://path_to_eventlog 替换为您的事件日志目录。

      $ docker build -t glue/sparkui:latest . $ docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
  3. 在浏览器中打开 http://localhost:18080 可本地查看 Spark UI。