本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EMR Notebooks 的示例编程命令
概览
您可以通过脚本或命令行执行 APIs 来执行 EMR 笔记本。当您在 AWS 控制台之外启动、停止、列出和描述 EMR 笔记本执行时,您可以通过编程方式控制 EMR 笔记本。您可以将不同的参数值传递给带参数化 Notebook 单元格的 Notebook。这样就不必为每组新参数值创建 Notebook 副本。有关更多信息,请参阅 Amazon EMR API actions。
您可以通过Amazon CloudWatch 事件安排或批量执行EMR笔记本和. AWS Lambda有关更多信息,请参阅AWS Lambda 与 Amazon CloudWatch 活动配合使用。
注意
EMR Notebooks 在控制台中作为 Amazon EMR Studio Workspaces 提供。通过控制台中的创建 Workspace 按钮,可以创建新的 Notebooks。要访问或创建 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
" ] } ] }
编程执行的限制
-
每个 AWS 区域 账户最多支持 100 个并发执行。
-
如果运行超过 30 天,则会终止执行。
-
Amazon EMR Serverless 交互式应用程序不支持以编程方式执行 Notebooks 电脑实例。
编程 EMR Notebook 执行示例
以下各节提供了使用 AWS CLI、Boto3 SDK (Python) 和 Ruby 以编程方式执行 EMR 笔记本的几个示例:
您还可以使用编排工具 [例如 Apache Airflow 或 Amazon Managed Workflows for Apache Airflow(MWAA)],将参数化 Notebooks 作为计划工作流的一部分运行。有关更多信息,请参阅AWS 大数据博客中的 Orchestrating analytics jobs on EMR Notebooks using MWAA