本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以程式設計的方式執行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筆記本上的分析工作