View a markdown version of this page

偵錯任務和工作階段 - Amazon EMR

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

偵錯任務和工作階段

注意

使用此功能時,存取可能包含敏感、未篩選資訊之系統設定檔工作者的 stdout 和 stderr 日誌。下列許可應僅用於存取非生產資料。對於為搭配生產任務使用而建立的應用程式,我們強烈建議您僅將這些許可新增至具有更高資料存取的管理員或使用者。

Amazon EMR Serverless 提供自我偵錯功能,可讓您存取已啟用 Lake Formation 之工作負載的系統設定檔工作者的 stdout 和 stderr 日誌。若要使用它,請在工作負載類型的儀表板 API 上將 accessSystemProfileLogs 參數設定為 true:

  • 對於已啟用 Lake Formation 的批次任務 (EMR-7.3.0 和更新版本),請使用 GetDashboardForJobRun API。

  • 對於已啟用 Lake Formation 的 Spark Connect 工作階段 (emr-7.14.0 和更新版本,或 emr-spark-8.1.0和更新版本),請使用 GetResourceDashboard API,並將 resourceType 設定為 SESSION。

aws emr-serverless get-dashboard-for-job-run \ --application-id application-id --job-run-id job-run-id --access-system-profile-logs
aws emr-serverless get-resource-dashboard \ --application-id application-id \ --resource-id session-id \ --resource-type SESSION \ --access-system-profile-logs

所需的許可

想要自我偵錯的委託人必須具有下列額外許可。// 註解會標記哪些動作和資源 ARN 適用於批次任務與 Spark Connect 工作階段 — 保留工作負載類型的項目,並在使用政策之前移除註解,因為 JSON 不支援註解。

{ "Sid": "AccessSystemProfileLogs", "Effect": "Allow", "Action": [ "emr-serverless:GetDashboardForJobRun", // batch job "emr-serverless:GetResourceDashboard", // Spark Connect session "emr-serverless:AccessSystemProfileLogs", "glue:GetDatabases", "glue:SearchTables" ], "Resource": [ "arn:aws:emr-serverless:region:account-id:/applications/applicationId/jobruns/jobid", // batch job "arn:aws:emr-serverless:region:account-id:/applications/applicationId/sessions/sessionId", // Spark Connect session "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:table/*/*" ] }

考量事項

對於在與任務或工作階段相同的帳戶中存取 Lake Formation 中的資料庫或資料表的任務和工作階段,可以看到用於偵錯的系統設定檔日誌。在下列案例中看不到它們:

  • 如果使用 Lake Formation 許可管理的資料目錄具有跨帳戶資料庫和資料表

  • 如果使用 Lake Formation 許可管理的資料目錄具有資源連結