本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
儲存日誌
若要在 EMR Serverless 上監控任務進度並疑難排解任務失敗,請選擇 EMR Serverless 如何存放和提供應用程式日誌。當您提交任務執行時,請指定 受管儲存、Amazon S3 和 Amazon CloudWatch 做為您的記錄選項。
使用 CloudWatch,指定您要使用的日誌類型和日誌位置,或接受預設類型和位置。如需 CloudWatch 日誌的詳細資訊,請參閱 使用 Amazon CloudWatch 記錄 EMR Serverless。使用受管儲存和 S3 記錄,下表列出如果您選擇受管儲存、Amazon S3 儲存貯體或兩者,您可以預期的日誌位置和 UI 可用性。
| 選項 | 事件日誌 | 容器日誌 | 應用程式 UI |
|---|---|---|---|
|
受管儲存 |
存放在受管儲存體 |
存放在受管儲存體 |
支援 |
|
受管儲存和 S3 儲存貯體 |
存放在兩個位置 |
存放在 S3 儲存貯體 |
支援 |
|
Amazon S3 儲存貯體 |
存放在 S3 儲存貯體 |
存放在 S3 儲存貯體 |
不支援1 |
1 建議您保持選取受管儲存選項。否則,您無法使用內建應用程式 UIs。
使用受管儲存體記錄 EMR Serverless
根據預設,EMR Serverless 會將應用程式日誌安全地存放在 Amazon EMR 受管儲存體中,最長可達 30 天。
注意
如果您關閉預設選項,Amazon EMR 無法代表您疑難排解任務。範例:您無法從 EMR Serverless Console 存取 Spark-UI。
若要從 EMR Studio 關閉此選項,請在提交任務頁面的其他設定區段取消選取允許 AWS 保留日誌 30 天核取方塊。
若要從 關閉此選項 AWS CLI,請在提交任務執行時使用 managedPersistenceMonitoringConfiguration組態。
{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }
如果您的 EMR Serverless 應用程式位於具有 Amazon S3 VPC 端點的私有子網路中,且您連接端點政策來控制存取,請新增下列許可,讓 EMR Serverless 存放和提供應用程式日誌。Resource 將 取代為存取 Amazon S3 之私有子網路的範例政策中可用區域資料表中的AppInfo儲存貯體。
此外,請使用 aws:SourceVpc條件金鑰,以確保請求通過 VPC 端點連接的 VPC。
使用 Amazon S3 儲存貯體記錄 EMR Serverless
在您的任務可以將日誌資料傳送到 Amazon S3 之前,請在任務執行時間角色的許可政策中包含下列許可。 將 取代為記錄儲存貯體的名稱。amzn-s3-demo-logging-bucket
若要設定 Amazon S3 儲存貯體以存放來自 的日誌 AWS CLI,請在開始任務執行時使用 s3MonitoringConfiguration組態。若要這樣做,請在組態--configuration-overrides中提供下列項目。
{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/" } } }
對於未啟用重試的批次任務,EMR Serverless 會將日誌傳送至下列路徑:
'/applications/<applicationId>/jobs/<jobId>'
EMR Serverless 會將 Spark 驅動程式日誌儲存在下列路徑中
'/applications/<applicationId>/jobs/<jobId>/SPARK_DRIVER/'
Spark 執行器日誌由 EMR Serverless 儲存在下列路徑中
'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'
<EXECUTOR-ID> 是整數。
EMR Serverless 7.1.0 版和更新版本支援串流任務和批次任務的重試嘗試。如果您在啟用重試的情況下執行任務,EMR Serverless 會自動將嘗試次數新增至日誌路徑字首,以便更清楚區分和追蹤日誌。
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'
使用 Amazon CloudWatch 記錄 EMR Serverless
當您將任務提交至 EMR Serverless 應用程式時,請選擇 Amazon CloudWatch 做為儲存應用程式日誌的選項。這可讓您使用 CloudWatch Logs Insights 和 Live Tail 等 CloudWatch Logs 分析功能。您也可以將日誌從 CloudWatch 串流到 OpenSearch 等其他系統,以進行進一步分析。
EMR Serverless 提供驅動程式日誌的即時記錄。您可以使用 CloudWatch 即時結尾功能或透過 CloudWatch CLI 結尾命令即時存取日誌。
預設會停用 EMR Serverless 的 CloudWatch 記錄。若要啟用此功能,請使用 中的組態AWS CLI。
注意
Amazon CloudWatch 會即時發佈日誌,因此會從工作者產生更多資源。如果您選擇低工作者容量,對任務執行時間的影響可能會增加。如果您啟用 CloudWatch 記錄,我們建議您選擇更大的工作者容量。如果 的交易每秒 (TPS) 速率太低,日誌發佈也可能會調節PutLogEvents。CloudWatch 限流組態適用於所有 服務,包括 EMR Serverless。如需詳細資訊,請參閱 AWS re:post 上的如何判斷 CloudWatch 日誌中的限流?
使用 CloudWatch 記錄所需的許可
在您的任務可以將日誌資料傳送到 Amazon CloudWatch 之前,請在任務執行時間角色的許可政策中包含下列許可。
AWS CLI
若要設定 Amazon CloudWatch 從 存放 EMR Serverless 的日誌 AWS CLI,請在開始任務執行時使用 cloudWatchLoggingConfiguration組態。若要這樣做,請提供下列組態覆寫。或者,您也可以提供日誌群組名稱、日誌串流字首名稱、日誌類型和加密金鑰 ARN。
如果您未指定選用值,則 CloudWatch 會使用預設日誌串流 ,將日誌發佈至/aws/emr-serverless預設日誌群組 /applications/。applicationId/jobs/jobId/worker-type
EMR Serverless 7.1.0 版和更新版本支援串流任務和批次任務的重試嘗試。如果您啟用了任務的重試,EMR Serverless 會自動將嘗試次數新增至日誌路徑字首,以便您更好地區分和追蹤日誌。
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'
以下示範使用 EMR Serverless 的預設設定開啟 Amazon CloudWatch 記錄所需的最低組態:
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }
下列範例顯示您為 EMR Serverless 開啟 Amazon CloudWatch 記錄時指定的所有必要和選用組態。支援logTypes的值也會列在下列範例中。
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, // Required "logGroupName": "Example_logGroup", // Optional "logStreamNamePrefix": "Example_logStream", // Optional "encryptionKeyArn": "key-arn", // Optional "logTypes": { "SPARK_DRIVER": ["stdout", "stderr"] //List of values } } } }
根據預設,EMR Serverless 只會將驅動程式 stdout 和 stderr 日誌發佈至 CloudWatch。如果您想要其他日誌,請使用 logTypes 欄位指定容器角色和對應的日誌類型。
下列清單顯示為logTypes組態指定的支援工作者類型:
- Spark
-
-
SPARK_DRIVER : ["STDERR", "STDOUT"] -
SPARK_EXECUTOR : ["STDERR", "STDOUT"]
-
- Hive
-
-
HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"] -
TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]
-