以程式設計的方式執行EMR筆記本 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

以程式設計的方式執行EMR筆記本

注意

EMR筆記本可作為主控台中的 EMR Studio 工作區使用。主控台中的 [建立工作區] 按鈕可讓您建立新的筆記本。若要存取或建立工作區,EMR筆記本使用者需要額外的IAM角色權限。有關詳情,請參閱 Amazon EMR 筆記本是控制台和 Amazon 控制台中的 Amazon EMR 工作EMR室工作區。

概觀

您可以APIs從腳本或命令行執行EMR筆記本。當您在 AWS 主控台外部啟動、停止、列出和描述EMR筆記本執行項目時,您可以透過程式設計方式控制EMR筆記本。可以將不同的參數值傳遞至具有參數化筆記本儲存格的筆記本。這樣就不需要為每組新參數值建立筆記本複本。如需詳細資訊,請參閱 Amazon EMR API 動作

您可以使EMR用 Amazon CloudWatch 事件和 AWS Lambda. 如需詳細資訊,請參閱AWS 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" } ] }

當您以程式設計方式在EMR筆記本叢集上執行EMR筆記本時,您必須新增下列額外權限:

{ "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 AWS 區域 個並行執行。

  • 如果執行運作超過 30 天,則會終止。

  • Amazon EMR 無伺服器互動式應用程式不支援以程式設計方式執行筆記本。

程式化EMR筆記本執行範例

下列各節提供數個使用 Boto3 SDK (Python) 和 Ruby 的程式設計EMR筆記本執行範例: AWS CLI

您也可以使用 Apache Airflow 或 Amazon 管理的 Apache Airflow 工作流程等協調工具來執行參數化筆記型電腦,做為排程工作流程的一部分 () MWAA。如需詳細資訊,請參閱AWS 大數據部落格MWAA使用的協調EMR筆記本上的分析工作