

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 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 中移除，这将禁用对中指定的这些 pod 的任何日志记录`monitoringConfiguration`，例如`s3MonitoringConfiguration`或`cloudWatchMonitoringConfiguration`。当未设置此设置或设置为任何其他值时，将启用对执行器 pod 的登录。

** `logging.image` **  
设置用于驱动程序和执行程序容器组上的日志记录容器的自定义映像。

** `logging.request.cores` **  
为驱动程序和执行程序容器组上的日志记录容器设置 CPU 数量自定义值（以 CPU 单元为单位）。默认情况下，不设置此值。

** `logging.request.memory` **  
为驱动程序和执行程序容器组上的日志记录容器设置内存量自定义值（以字节为单位）。默认情况下，这设置为 **512Mi**。mebibyte 是一种类似于 megabyte 的度量单位。

** `logging.eventLog.dir` **  
使用此配置启用永久应用程序用户界面并将 Spark 事件日志保存到您自己的 S3 位置。设置`logging.eventLog.dir`为事件日志的 S3 路径。在 `monitoringConfiguration` 中，将 `persistentAppUI` 设置为 `ENABLED`。使用`spark.eventLog.dir`时不要设置`logging.eventLog.dir`；这两种配置不兼容。如果设置了该配置，`spark.eventLog.dir`则该配置优先，并且日志容器无法复制 Spark 事件日志。这意味着您指定的 S3 位置将`logging.eventLog.dir`不会接收事件日志，永久应用程序用户界面也将无法运行。

## 任务提交者分类示例
<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 日志容器遇到内存不足 (OOM) 错误，请增加该值。`logging.request.memory`例如，将其设置为以`1Gi`向日志容器分配更多内存并防止 OOM 问题。

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

以下示例将 Spark 事件日志保存到您自己的 Amazon S3 存储桶中，同时还启用了永久应用程序用户界面。该`persistentAppUI`设置为`ENABLED`默认值。

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

**注意**  
使用时请勿`spark.eventLog.dir`在`spark-defaults`分类中设置`logging.eventLog.dir`。这两种配置不兼容。如果设置了该配置，`spark.eventLog.dir`则该配置优先，并且日志容器无法复制 Spark 事件日志。这意味着您指定的 S3 位置将`logging.eventLog.dir`不会接收事件日志，永久应用程序用户界面也将无法运行。