本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
以编程方式执行 EMR Notebooks 的示例命令
注意
在新控制台中,EMR 笔记本电脑可作为 EMR Studio 工作区使用。您仍然可以在旧主机中使用现有笔记本电脑,但不能在旧主机中创建新笔记本电脑。新控制台中的 “创建工作区” 按钮取代了此功能。要访问或创建工作空间,EMR 笔记本用户需要额外的 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 笔记本电脑。您可以将不同的参数值传递给带有参数化笔记本单元格的笔记本。这样就无需为每组新的参数值创建笔记本副本。有关更多信息,请参阅亚马逊 EMR API 操作。
您可以使用亚马逊CloudWatch事件和Amazon Lambda来安排或批量执行 EMR 笔记本电脑。有关更多信息,请参阅在亚马逊CloudWatch活动中Amazon Lambda使用。
编程执行的角色权限
要在 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 笔记本集群上执行 EMR 笔记本时,必须添加以下额外权限:
注意
EKS 上的 Amazon EMR 托管终端节点功能处于预览版中,可能会发生变化。该功能以服务条款中定义的预览Amazon服务
{ "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
" ] } ] }
编程执行的局限性
-
每个账户每个区域最多支持 100 个并发执行。
-
如果执行时间超过 30 天,则终止执行。
以编程方式执行 EMR 笔记本的示例
以下部分提供了使用 Boto3 SDK (Python) 和 R Amazon CLI uby 执行编程 EMR 笔记本的几个示例:
您还可以使用 Apache Airflow 或 Apache Airflow 的亚马逊托管工作流程 (MWAA) 等编排工具将参数化笔记本电脑作为预定工作流程的一部分运行。有关更多信息,请参阅大数据博客中的使用 MWAA 在 EMR 笔记本上协调分析作业