为交互式端点自定义 Docker 映像 - Amazon EMR

为交互式端点自定义 Docker 映像

您还可以为交互式端点自定义 Docker 映像,以便运行自定义的基础内核映像。这有助于确保在从 EMR Studio 运行交互式工作负载时拥有所需的依赖项。

  1. 按照上述第 1-4 步进行操作,以自定义 Docker 镜像。对于 Amazon EMR 6.9.0 版本及更高版本,您可以从 Amazon ECR Public Gallery 获取基础映像 URI。对于 Amazon EMR 6.9.0 之前的版本,您可以在每个 AWS 区域 的 Amazon ECR 注册账户中获取映像,唯一的区别是 Dockerfile 中的基础映像 URI。基础映像 URI 遵循以下格式:

    ECR-registry-account.dkr.ecr.Region.amazonaws.com/notebook-spark/container-image-tag

    您需要在基本镜像 URI 中使用 notebook-spark,而不是 spark。基本镜像包含 Spark 运行时,以及随之运行的笔记本内核。有关选择区域和容器镜像标签的更多信息,请参阅 如何选择基础映像 URI 的详细信息

    注意

    目前仅支持覆盖基础镜像,除 AWS 提供的基础镜像之外,不支持引入其他类型的全新内核。

  2. 创建可与自定义映像配合使用的交互式端点。

    首先,使用以下内容创建名为 custom-image-managed-endpoint.json 的 JSON 文件。

    { "name": "endpoint-name", "virtualClusterId": "virtual-cluster-id", "type": "JUPYTER_ENTERPRISE_GATEWAY", "releaseLabel": "emr-6.6.0-latest", "executionRoleArn": "execution-role-arn", "certificateArn": "certificate-arn", "configurationOverrides": { "applicationConfiguration": [ { "classification": "jupyter-kernel-overrides", "configurations": [ { "classification": "python3", "properties": { "container-image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/custom-notebook-python:latest" } }, { "classification": "spark-python-kubernetes", "properties": { "container-image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/custom-notebook-spark:latest" } } ] } ] } }

    然后,使用该 JSON 文件中指定的配置创建交互式端点,如以下示例所示。

    aws emr-containers create-managed-endpoint --cli-input-json custom-image-managed-endpoint.json

    有关更多信息,请参阅为虚拟集群创建交互式端点

  3. 通过 EMR Studio 连接到交互式端点。有关更多信息,请参阅从 Studio 连接