Amazon EMR Serverless 入門 - Amazon EMR

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

Amazon EMR Serverless 入門

本教學課程可協助您在部署範例 Spark 或 Hive 工作負載時開始使用 EMR Serverless。您將建立、執行和偵錯自己的應用程式。我們在本教學的大部分部分顯示預設選項。

啟動 EMR Serverless 應用程式之前,請完成下列任務。

授予使用 EMR Serverless 的許可

若要使用 EMR Serverless,您需要具有連接政策的使用者或IAM角色來授予 EMR Serverless 的許可。若要建立使用者並將適當的政策連接到該使用者,請遵循 中的指示授予許可

為無EMR伺服器準備儲存

在本教學課程中,您將使用 S3 儲存貯體來存放使用 EMR Serverless 應用程式執行之範例 Spark 或 Hive 工作負載的輸出檔案和日誌。若要建立儲存貯體,請遵循 Amazon Simple Storage Service 主控台使用者指南建立儲存貯體的指示。以新建立的儲存貯amzn-s3-demo-bucket體名稱取代 的任何進一步參考。

建立 EMR Studio 以執行互動式工作負載

如果您想要使用 EMR Serverless 透過 EMR Studio 中託管的筆記本執行互動式查詢,您需要指定 S3 儲存貯體和 EMR Serverless 的最低服務角色,才能建立工作區。如需設定步驟,請參閱《Amazon EMR管理指南》中的設定 EMR Studio。如需互動式工作負載的詳細資訊,請參閱透過 EMR Studio 使用 EMR Serverless 執行互動式工作負載

建立任務執行期角色

EMR 在 Serverless 中執行的任務會使用執行期角色,在執行期提供特定 AWS 服務 和資源的精細許可。在本教學課程中,公有 S3 儲存貯體會託管資料和指令碼。儲存貯amzn-s3-demo-bucket體存放輸出。

若要設定任務執行期角色,請先使用信任政策建立執行期角色,以便 EMR Serverless 可以使用新角色。接著,將所需的 S3 存取政策連接到該角色。下列步驟會引導您完成此程序。

Console
  1. 在 導覽至 IAM主控台https://console.aws.amazon.com/iam/

  2. 在左側導覽窗格中,選擇 Roles (角色)。

  3. 選擇建立角色

  4. 針對角色類型,選擇自訂信任政策並貼上下列信任政策。這可讓提交至 Amazon EMR Serverless 應用程式的任務 AWS 服務 代表您存取其他 。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  5. 選擇下一步以導覽至新增許可頁面,然後選擇建立政策

  6. 建立新標籤會開啟建立政策頁面。貼上JSON以下政策。

    重要

    將下列政策amzn-s3-demo-bucket中的 取代為在 中建立的實際儲存貯體名稱為無EMR伺服器準備儲存。這是 S3 存取的基本政策。如需更多任務執行時間角色範例,請參閱 Amazon EMR Serverless 的任務執行期角色

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToOutputBucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }
  7. 檢閱政策頁面上,輸入政策的名稱,例如 EMRServerlessS3AndGlueAccessPolicy

  8. 重新整理連接許可政策頁面,然後選擇 EMRServerlessS3AndGlueAccessPolicy

  9. 名稱中,檢閱和建立頁面中,針對角色名稱輸入角色的名稱,例如 EMRServerlessS3RuntimeRole。若要建立此IAM角色,請選擇建立角色

CLI
  1. 建立名為 的檔案emr-serverless-trust-policy.json,其中包含要用於IAM角色的信任政策。檔案應包含下列政策。

    { "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessTrustPolicy", "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" } }] }
  2. 建立名為 IAM的角色EMRServerlessS3RuntimeRole。使用您在上一個步驟中建立的信任政策。

    aws iam create-role \ --role-name EMRServerlessS3RuntimeRole \ --assume-role-policy-document file://emr-serverless-trust-policy.json

    請記下輸出中的 ARN。您可以在任務提交期間使用新角色ARN的 ,在此之後稱為 job-role-arn

  3. 建立名為 的檔案emr-sample-access-policy.json,以定義工作負載IAM的政策。這可讓您讀取存放在公有 S3 儲存貯體中的指令碼和資料,以及讀取寫入存取 amzn-s3-demo-bucket

    重要

    將下列政策amzn-s3-demo-bucket中的 取代為在 中建立的實際儲存貯體名稱為無EMR伺服器準備儲存。這是 Glue 和 S3 AWS 存取的基本政策。如需更多任務執行時間角色範例,請參閱 Amazon EMR Serverless 的任務執行期角色

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToOutputBucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable",Understanding default application behavior, including auto-start and auto-stop, as well as maximum capacity and worker configurations for configuring an application with &EMRServerless;. "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }
  4. 使用您在步驟 3 中建立IAM的政策檔案建立名為 EMRServerlessS3AndGlueAccessPolicy的政策。 請注意輸出ARN中的 ,因為您將在下一個步驟中使用新政策ARN的 。

    aws iam create-policy \ --policy-name EMRServerlessS3AndGlueAccessPolicy \ --policy-document file://emr-sample-access-policy.json

    在輸出ARN中記下新政策的 。您將在下一個步驟policy-arn中將其取代為 。

  5. 將IAM政策連接至EMRServerlessS3AndGlueAccessPolicy任務執行期角色 EMRServerlessS3RuntimeRole

    aws iam attach-role-policy \ --role-name EMRServerlessS3RuntimeRole \ --policy-arn policy-arn