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

以编程方式执行 EMR Notebooks 的示例命令

注意

EMR Notebooks 在新控制台中作为 Amazon EMR Studio Workspaces 提供。您仍然可以在旧控制台中使用现有笔记本,但无法在其中创建新笔记本。新控制台中的创建 Workspace 按钮将取代此功能。要访问或创建 Workspaces,EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息,请参阅 Amazon EMR Notebooks are Amazon EMR Studio Workspaces in new console(Amazon EMR Notebooks 在新控制台中为 Amazon EMR Studio Workspaces)和 What's new in the console?(控制台中有哪些新功能?)

概述

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

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

编程执行的角色权限

要在 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