本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 Workspaces 和 Amazon 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