本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EMR笔记本编程命令示例
概述
您可以通过脚本或命令行执行APIs来执行EMR笔记本。当你在 AWS 控制台之外启动、停止、列出和描述EMR笔记本执行时,你可以通过编程方式控制EMR笔记本。您可以将不同的参数值传递给带参数化笔记本单元格的笔记本。这样就不必为每组新参数值创建笔记本副本。有关更多信息,请参阅 Amazon EMR API 操作。
您可以通过 Amazon CloudWatch 事件来安排或批量执行EMR笔记本和 AWS Lambda。有关更多信息,请参阅AWS Lambda 与 Amazon CloudWatch 活动配合使用。
注意
EMR笔记本电脑可在控制台中作为 EMR Studio 工作区使用。控制台中的 “创建工作区” 按钮允许您创建新的笔记本。要访问或创建工作区,EMRNotebook 用户需要额外的IAM角色权限。有关更多信息,请参阅 Amazon EMR Notebook 是控制台和亚马逊控制台中的 Ama z EMR on EMR Studio 工作空间。
编程执行的角色权限
要在 EMR Notebook 上使用编程执行,必须使用以下策略配置用户权限:
{ "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" } ] }
在 Notebooks 集群EMR上以编程方式执行 EMR Notebook 时,必须添加以下额外权限:
{ "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 交互式应用程序不支持以编程方式执行笔记本。
编程EMR笔记本执行示例
以下各节提供了几个使用 AWS CLI、Boto3 (SDKPython) 和 Ruby 编程执行EMR笔记本的示例:
您还可以使用诸如 Apache Airflow 或适用于 Apache Airflow 的亚马逊托管工作流程 () 之类的编排工具,将参数化笔记本作为计划工作流程的一部分来运行。MWAA有关更多信息,请参阅AWS 大数据博客MWAA中的使用在 EMR Notebook 上编排分析作业