Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de la clasificación de valores predeterminados de contenedores de Amazon EMR
Descripción general de
Las siguientes configuraciones están disponibles en la clasificación emr-containers-defaults:
-
job-start-timeout -
De forma predeterminada, se agota el tiempo de espera de un trabajo si no se puede iniciar y espera en estado de
SUBMITTEDdurante 15 minutos. Esta configuración cambia la cantidad de segundos que se deben esperar antes de que se agote el trabajo. -
executor.logging -
Activa o desactiva el registro en los pods ejecutores. Si se establece en,
DISABLEDel contenedor de registro se elimina de los pods ejecutores, lo que deshabilitará cualquier registro de estos pods especificado enmonitoringConfiguration, como o.s3MonitoringConfigurationcloudWatchMonitoringConfigurationSi esta configuración no está establecida o se establece en cualquier otro valor, se habilita el inicio de sesión en los pods ejecutores. -
logging.image -
Establece una imagen personalizada que se usará en el contenedor de registro de los pods del controlador y del ejecutor.
-
logging.request.cores -
Establece un valor personalizado para el número de CPU, en unidades de CPU, para el contenedor de registro de los pods del controlador y del ejecutor. No se establece de forma predeterminada.
-
logging.request.memory -
Establece un valor personalizado para la cantidad de memoria, en bytes, del contenedor de registro de los pods del controlador y del ejecutor. De forma predeterminada, se establece en 512 Mi. Un mebibyte es una unidad de medida similar a un megabyte.
-
logging.eventLog.dir -
Usa esta configuración para habilitar la interfaz de usuario persistente de la aplicación y guardar los registros de eventos de Spark en tu propia ubicación de S3. Configura
logging.eventLog.dirla ruta S3 para tus registros de eventos. EnmonitoringConfiguration, establezcapersistentAppUIenENABLED. No configurespark.eventLog.dircuándo lo usalogging.eventLog.dir; estas dos configuraciones son incompatibles. Sispark.eventLog.direstá configurada, esa configuración tiene prioridad y el contenedor de registro no puede replicar los registros de eventos de Spark. Esto significa que la ubicación de S3 especificada porlogging.eventLog.dirno recibirá los registros de eventos y que la interfaz de usuario de la aplicación persistente tampoco funcionará. -
logging.nativeSidecar -
Cuando configuras esta propiedad
ENABLEDpara la versión 6.8.0 o superior de Amazon EMR, Amazon EMR configura el contenedor de registro de tus pods de controladores y ejecutores de Spark como un contenedor secundario Kubernetes nativo (consulta los detalles en el Kubernetes sitio web) en lugar de como un contenedor normal. Esto significa que el contenedor de registro se reinicia automáticamente en caso de error y que el registro de errores en el contenedor no provocará que el pod falle. Requisito de versión del nodo
Los nodos de Amazon EKS deben ejecutar la Kubernetes versión 1.29 o superior. La versión de su clúster de EKS puede diferir de la versión de su nodo. Si sus nodos ejecutan una versión anterior a la 1.29, Kubernetes no habilita la función sidecar nativa y el contenedor de registro impide que el controlador se inicie, lo que hace que se agoten los trabajos.
Ejemplos de clasificación de remitentes de trabajos
En esta sección
Solicitud de StartJobRun con tiempo de espera de trabajo personalizado
{ "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" } } } }
StartJobRunsolicitud con el registro desactivado para los módulos ejecutores
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "executor.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }
StartJobRunsolicitud con imagen de contenedor de registro, CPU y memoria personalizadas para los módulos de controladores y ejecutores
"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" } } }
nota
Si el contenedor de registro de Fluentd detecta un error de falta de memoria (OOM), aumente el valor. logging.request.memory Por ejemplo, configúralo 1Gi para asignar más memoria al contenedor de registro y evitar problemas de OOM.
StartJobRunsolicite con el registro de eventos de Spark el destino de Amazon S3
El siguiente ejemplo guarda los registros de eventos de Spark en tu propio bucket de Amazon S3 y, al mismo tiempo, habilita la interfaz de usuario de la aplicación persistente. La persistentAppUI configuración es ENABLED la predeterminada.
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.eventLog.dir": "s3://my-bucket/event-logs/" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED" } }
nota
No lo configures spark.eventLog.dir en la spark-defaults clasificación cuando lo utiliceslogging.eventLog.dir. Estas dos configuraciones son incompatibles. Si spark.eventLog.dir está establecida, esa configuración tiene prioridad y el contenedor de registro no puede replicar los registros de eventos de Spark. Esto significa que la ubicación de S3 especificada por logging.eventLog.dir no recibirá los registros de eventos y que la interfaz de usuario de la aplicación persistente tampoco funcionará.
StartJobRunsolicitud con registro nativo de sidecar
En el siguiente ejemplo, se habilita el modo sidecar nativo para el contenedor de registro de los módulos de controladores y ejecutores de Spark. Cuando está activado, el contenedor de registro funciona como un sidecar Kubernetes nativo que se reinicia automáticamente en caso de fallo y no afecta al estado de los pods de Spark.
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-containers-defaults", "properties": { "logging.nativeSidecar": "ENABLED" } } ], "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://my-bucket/logs/" } } }
Requisito de versión del nodo
Los nodos de Amazon EKS deben ejecutar la Kubernetes versión 1.29 o superior. La versión de su clúster de EKS puede diferir de la versión de su nodo. Si sus nodos ejecutan una versión anterior a la 1.29, Kubernetes no habilita la función sidecar nativa y el contenedor de registro impide que el controlador se inicie, lo que hace que se agoten los trabajos.