EMR Notebooks 的示例编程命令 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

EMR Notebooks 的示例编程命令

概述

您可以通过脚本或命令行中的执行 API 来执行 EMR 笔记本。在 Amazon 控制台外启动、停止、列出和描述 EMR 笔记本执行时,您可以通过编程方式控制 EMR 笔记本。您可以将不同的参数值传递给带参数化笔记本单元格的笔记本。这样就不必为每组新参数值创建笔记本副本。有关更多信息,请参阅 Amazon EMR API actions

您可以使用 Amazon CloudWatch Events 和 Amazon Lambda 安排或批量处理 EMR 笔记本执行。有关更多信息,请参阅将 Amazon Lambda 与 Amazon CloudWatch Events 结合使用

注意

EMR Notebooks 在控制台中作为 Amazon EMR Studio Workspaces 提供。通过控制台中的创建工作区按钮,可以创建新的笔记本。要访问或创建 Workspaces,EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息,请参阅 Amazon EMR Notebooks 是控制台中的 Amazon EMR Studio WorkspacesAmazon EMR 控制台

编程执行的角色权限

要在 EMR Notebooks 中使用编程执行,您必须使用以下策略配置用户权限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowExecutionActions", "Effect": "Allow", "Action": [ "elasticmapreduce:StartNotebookExecution", "elasticmapreduce:DescribeNotebookExecution", "elasticmapreduce:ListNotebookExecutions" ], "Resource": "*" }, { "Sid": "AllowPassingServiceRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/EMR_Notebooks_DefaultRole" } ] }

在 EMR Notebooks 集群上以编程方式执行 EMR Notebooks 时,您必须添加以下额外权限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:region:account-id:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::account-id:role/emr-on-eks-execution-role" ] } } }, { "Sid": "AllowDescribingManagedEndpoint", "Effect": "Allow", "Action": [ "emr-containers:DescribeManagedEndpoint" ], "Resource": [ "arn:aws:emr-containers:region:account-id:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id" ] } ] }

编程执行的限制

  • 每账户每 Amazon Web Services 区域最多支持 100 个并发执行。

  • 如果运行超过 30 天,则会终止执行。

  • Amazon EMR Serverless 交互式应用程序不支持以编程方式执行笔记本电脑实例。

编程 EMR 笔记本执行示例

本节提供了几个使用 Amazon CLI、Boto3 SDK(Python)和 Ruby 以编程方式执行 EMR 笔记本的示例:

您还可以使用编排工具 [例如 Apache Airflow 或 Amazon Managed Workflows for Apache Airflow(MWAA)],将参数化笔记本作为计划工作流的一部分运行。有关更多信息,请参阅 Amazon 大数据博客中的 Orchestrating analytics jobs on EMR Notebooks using MWAA