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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

注意

EMR笔记本电脑可在控制台中作为 EMR Studio 工作区使用。控制台中的 “创建工作区” 按钮允许您创建新的笔记本。要访问或创建工作区,EMRNotebook 用户需要额外的IAM角色权限。有关更多信息,请参阅 Amazon EMR Notebook 是控制台和亚马逊控制台中的 Ama z EMR on EMR Studio 工作空间。

概述

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

您可以通过 Amazon CloudWatch 事件安排或批量执行EMR笔记本和 Amazon Lambda。有关更多信息,请参阅Amazon Lambda 与 Amazon CloudWatch 活动配合使用

编程执行的角色权限

要在 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" ] } ] }

编程执行的限制

  • 每个 Amazon Web Services 区域 账户最多支持 100 个并发执行。

  • 如果运行超过 30 天,则会终止执行。

  • Amazon EMR Serverless 交互式应用程序不支持以编程方式执行笔记本。

编程EMR笔记本执行示例

以下各节提供了几个使用 Amazon CLI、Boto3 (SDKPython) 和 Ruby 编程执行EMR笔记本的示例:

您还可以使用诸如 Apache Airflow 或适用于 Apache Airflow 的亚马逊托管工作流程 () 之类的编排工具,将参数化笔记本作为计划工作流程的一部分来运行。MWAA有关更多信息,请参阅Amazon 大数据博客MWAA中的使用在 EMR Notebook 上编排分析作业