

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

# 使用 Amazon EMR 容器預設分類
<a name="emr-eks-job-submitter-container-defaults"></a>

## 概觀
<a name="emr-eks-job-submitter-container-defaults-overview"></a>

`emr-containers-defaults` 分類下提供下列設定：

** `job-start-timeout` **  
根據預設，如果任務無法啟動且等待` SUBMITTED`狀態為 15 分鐘，則會逾時。此組態會變更任務逾時前要等待的秒數。

** `executor.logging` **  
啟用或停用執行器 Pod 上的記錄。將此設定為` DISABLED`記錄容器時，會從執行器 Pod 中移除，這會停用 或 `monitoringConfiguration` `s3MonitoringConfiguration` 中指定之這些 Pod 的任何記錄`cloudWatchMonitoringConfiguration`。當此設定未設定或設定為任何其他值時，會啟用執行器 Pod 上的記錄。

** `logging.image` **  
設定要用於驅動程式和執行器 Pod 上記錄容器的自訂映像。

** `logging.request.cores` **  
針對驅動程式和執行器 Pod 上的記錄容器，以 CPU 單位設定 CPUs 數量的自訂值。根據預設，不會設定此選項。

** `logging.request.memory` **  
設定驅動程式和執行器 Pod 上記錄容器的記憶體量自訂值，以位元組為單位。根據預設，這會設定為 **512Mi**。MB 是類似於 MB 的度量單位。

** `logging.eventLog.dir` **  
使用此組態來啟用持久性應用程式 UI，並將 Spark 事件日誌儲存到您自己的 S3 位置。將 `logging.eventLog.dir`設定為事件日誌的 S3 路徑。在 中`monitoringConfiguration`，將 `persistentAppUI`設定為 `ENABLED`。使用 `spark.eventLog.dir`時請勿設定 `logging.eventLog.dir`；這兩個組態不相容。如果`spark.eventLog.dir`已設定 ，則該組態會優先，而記錄容器無法複寫 Spark 事件日誌。這表示 指定的 S3 位置`logging.eventLog.dir`不會收到事件日誌，持久性應用程式 UI 也無法運作。

## 作業提交器分類範例
<a name="emr-eks-job-submitter-container-examples"></a>

**Topics**
+ [`StartJobRun` 具有自訂任務逾時的 請求](#emr-eks-job-submitter-container-custom-timeout)
+ [`StartJobRun` 針對執行器 Pod 停用記錄的 請求](#emr-eks-executor-logging-disabled)
+ [`StartJobRun` 具有驅動程式和執行器 Pod 的自訂記錄容器映像、CPU 和記憶體的 請求](#emr-eks-job-submitter-container-custom-image-cpu)
+ [`StartJobRun` 使用 Spark 事件日誌 Amazon S3 目的地的 請求](#emr-eks-job-submitter-container-event-log-dir)

### `StartJobRun` 具有自訂任務逾時的 請求
<a name="emr-eks-job-submitter-container-custom-timeout"></a>

```
{
  "name": "spark-python", 
  "virtualClusterId": "{{virtual-cluster-id}}", 
  "executionRoleArn": "{{execution-role-arn}}", 
  "releaseLabel": "{{emr-6.11.0-latest}}", 
  "jobDriver": {
    "sparkSubmitJobDriver": {
      "entryPoint": "s3://{{S3-prefix}}/trip-count.py"
    }
  }, 
  "configurationOverrides": {
    "applicationConfiguration": [
      {
        "classification": "emr-containers-defaults", 
        "properties": {
          "job-start-timeout": "1800"
        }
      }
    ], 
    "monitoringConfiguration": {
      "cloudWatchMonitoringConfiguration": {
        "logGroupName": "/emr-containers/jobs", 
        "logStreamNamePrefix": "demo"
      }, 
      "s3MonitoringConfiguration": {
        "logUri": "s3://joblogs"
      }
    }
  }
}
```

### `StartJobRun` 針對執行器 Pod 停用記錄的 請求
<a name="emr-eks-executor-logging-disabled"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-containers-defaults", 
      "properties": {
        "executor.logging": "DISABLED"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

### `StartJobRun` 具有驅動程式和執行器 Pod 的自訂記錄容器映像、CPU 和記憶體的 請求
<a name="emr-eks-job-submitter-container-custom-image-cpu"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-containers-defaults", 
      "properties": {
        "logging.image": "{{YOUR_ECR_IMAGE_URL}}",
        "logging.request.memory": "200Mi",
        "logging.request.cores": "0.5"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

**注意**  
如果 Fluentd 記錄容器遇到out-of-memory(OOM) 錯誤，請增加 `logging.request.memory`值。例如，將其設定為 `1Gi`，將更多記憶體配置到記錄容器，並防止 OOM 問題。

### `StartJobRun` 使用 Spark 事件日誌 Amazon S3 目的地的 請求
<a name="emr-eks-job-submitter-container-event-log-dir"></a>

下列範例會將 Spark 事件日誌儲存至您自己的 Amazon S3 儲存貯體，同時啟用持久性應用程式 UI。`ENABLED` 預設為 `persistentAppUI`設定。

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-containers-defaults", 
      "properties": {
        "logging.eventLog.dir": "s3://{{my-bucket}}/{{event-logs}}/"
      }
    }
  ], 
  "monitoringConfiguration": {
    "persistentAppUI": "ENABLED"
  }
}
```

**注意**  
使用 時，請勿在`spark-defaults`分類`spark.eventLog.dir`中設定 `logging.eventLog.dir`。這兩個組態不相容。如果`spark.eventLog.dir`已設定 ，則該組態會優先進行，而記錄容器無法複寫 Spark 事件日誌。這表示 指定的 S3 位置`logging.eventLog.dir`不會收到事件日誌，持久性應用程式 UI 也無法運作。