Este tema describe los elementos de configuración y el procedimiento para desarrollar una tarea por lotes o de streaming.
Requisitos previos
Se creó un espacio de trabajo. Para obtener más información, consulte Manage workspaces.
Procedimiento
-
Vaya a la página Data Development.
Inicie sesión en la consola de E-MapReduce.
En el panel de navegación izquierdo, elija .
En la página Spark, haga clic en el nombre del espacio de trabajo deseado.
En la página EMR Serverless Spark, haga clic en Development en el panel de navegación izquierdo.
-
Cree una tarea.
En la pestaña Development, haga clic en el icono
.En el cuadro de diálogo, introduzca un Name, seleccione un tipo de tarea por lotes o de streaming y haga clic en OK.
En la esquina superior derecha, seleccione a resource queue.
-
En el editor de la nueva tarea, edite los parámetros según el tipo de tarea.
JAR
Parámetro
Descripción
Main JAR Resource
Paquete JAR principal necesario para ejecutar la tarea.
Workspace: archivos que haya subido previamente a la página Artifacts.
OSS: archivo almacenado en Alibaba Cloud Object Storage Service (OSS).
Engine Version
Versión de Spark. Para obtener más información, consulte Engine versions.
Main class
Clase principal especificada al enviar la tarea de Spark.
Execution Parameters
Elementos de configuración necesarios durante la ejecución de la tarea o parámetros personalizados pasados a la clase principal. Separe varios parámetros con espacios.
Timeout
Tiempo máximo permitido para que esta tarea finalice. Si la tarea se ejecuta por más tiempo que este umbral, el sistema la detiene automáticamente. El valor predeterminado está vacío, lo que significa que no se establece ningún límite de tiempo de espera.
Network Connection
Conexión de red existente para acceder a fuentes de datos en una VPC o a servicios externos. Para obtener más información, consulte Network connectivity between EMR Serverless Spark and other VPCs.
Mount Integrated File Directory
Deshabilitada de forma predeterminada. Para usar esta función, agregue un directorio de archivos en la página Artifacts, en la pestaña Integrated File Directory. Para obtener más información, consulte Manage the integrated file directory.
Al habilitar esta función, se monta el directorio de archivos administrado en la aplicación. Esto permite leer y escribir directamente los archivos del directorio.
La operación de montaje consume recursos de cómputo del controlador. La cantidad consumida corresponde al mayor de los dos valores siguientes:
Recursos fijos: 0.3 vCPU + 1 GB de memoria.
Recursos dinámicos: 10 % de los recursos de
spark.driver(es decir, 10 % de los núcleos y la memoria despark.driver).
Por ejemplo, si
spark.driverse configura con 4 núcleos y 8 GB de memoria, los recursos dinámicos son 0.4 vCPU + 0.8 GB de memoria. En este caso, los recursos consumidos realmente sonmax(0.3 vCPUs + 1 GB, 0.4 vCPUs + 0.8 GB), es decir, 0.4 vCPU + 1 GB de memoria.Nota-
Ámbito de montaje: de forma predeterminada, el directorio de archivos se monta solo en el controlador. Para montarlo también en los ejecutores, habilite Mount to Executor.
-
Varios directorios: puede montar varios directorios de archivos integrados. Sin embargo, los directorios CPFS no pueden usarse junto con otros tipos. Por ejemplo, puede montar varios directorios OSS y NAS juntos, pero no puede montar CPFS con directorios OSS o NAS.
-
Requisitos de red: cuando monte un directorio de archivos NAS o CPFS, debe configurar una conexión de red. La VPC de la conexión de red debe ser la misma que la VPC del destino de montaje de NAS o CPFS.
Mount to Executor
Al habilitar esta función, se monta el directorio de archivos administrado en los ejecutores de la aplicación. Esto les permite leer y escribir directamente los archivos del directorio.
Esta operación de montaje consume recursos de los ejecutores. La cantidad de recursos consumidos varía según el uso de los archivos montados.
File Resources
Cuando envíe la tarea, los archivos especificados mediante el parámetro
--filesse copian al directorio de trabajo del ejecutor. Esto garantiza que la tarea de Spark pueda acceder a estos archivos durante la ejecución.Puede seleccionar archivos de Workspace o de OSS.
Archive Resources
Cuando envíe la tarea, los archivos especificados mediante el parámetro
--archivesse descomprimen y se distribuyen a los objetos archivados en el ejecutor.Puede seleccionar archivos de Workspace o de OSS.
JAR Resources
Cuando envíe la tarea, especifique los archivos JAR de dependencia necesarios mediante el parámetro
--jars.Puede seleccionar archivos JAR de Workspace o de OSS.
spark.driver.cores
Número de núcleos de CPU que usa el controlador en la aplicación de Spark.
spark.driver.memory
Cantidad de memoria disponible para el controlador en la aplicación de Spark.
spark.executor.cores
Número de núcleos de CPU virtuales que usa cada ejecutor en la aplicación de Spark.
spark.executor.memory
Cantidad de memoria disponible para cada ejecutor en la aplicación de Spark.
spark.executor.instances
Número de ejecutores asignados por Spark.
Dynamic Resource Allocation
Deshabilitada de forma predeterminada. Cuando la habilite, configure los siguientes parámetros:
-
Minimum Number of Executors: el valor predeterminado es 2.
-
Maximum Number of Executors: si no se establece spark.executor.instances, el valor predeterminado es 10.
More Memory Configurations
-
spark.driver.memoryOverhead: memoria fuera del heap disponible para el controlador. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.driver.memory). -
spark.executor.memoryOverhead: memoria fuera del heap disponible para cada ejecutor. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.executor.memory). -
spark.memory.offHeap.size: cantidad de memoria fuera del heap disponible para Spark. El valor predeterminado es 1 GB.
Este parámetro surte efecto solo cuando
spark.memory.offHeap.enabledse establece entrue. Cuando se usa el motor Fusion, esta función se habilita de forma predeterminada con 1 GB de memoria fuera del heap.
Spark Configuration
Introduzca la información de configuración de Spark. Separe los pares clave-valor con un espacio. Por ejemplo,
key value.Tags
Introduzca pares clave-valor para las etiquetas. Las etiquetas le ayudan a gestionar las tareas con mayor comodidad y precisión.
PySpark
Parámetro
Descripción
Main Python Resources
Archivo de Python principal necesario para ejecutar la tarea.
Workspace: archivo que haya subido a la página Artifacts.
OSS: archivo almacenado en Object Storage Service (OSS).
Engine Version
Versión de Spark. Para obtener más información, consulte Engine versions.
Execution Parameters
Elementos de configuración necesarios durante la ejecución de la tarea o parámetros personalizados pasados a la clase principal.
Timeout
Tiempo máximo permitido para que esta tarea finalice. Si la tarea se ejecuta por más tiempo que este umbral, el sistema la detiene automáticamente. El valor predeterminado está vacío, lo que significa que no se establece ningún límite de tiempo de espera.
Environment
Los recursos necesarios para ejecutar la tarea se preconfiguran según el entorno seleccionado.
Network Connection
Conexión de red existente para acceder a fuentes de datos en una VPC o a servicios externos. Para obtener más información, consulte Network connectivity between EMR Serverless Spark and other VPCs.
Mount Integrated File Directory
Deshabilitada de forma predeterminada. Para usar esta función, agregue un directorio de archivos en la página Artifacts, en la pestaña Integrated File Directory. Para obtener más información, consulte Manage the integrated file directory.
Cuando se habilita, esta función monta el directorio de archivos administrado en la tarea. Esto permite el acceso directo de lectura y escritura a los archivos del directorio.
La operación de montaje consume recursos de cómputo del controlador. La cantidad consumida corresponde al mayor de los dos valores siguientes:
Recursos fijos: 0.3 vCPU + 1 GB de memoria.
Recursos dinámicos: 10 % de los recursos de
spark.driver(es decir, 10 % de los núcleos y la memoria despark.driver).
Por ejemplo, si
spark.driverse configura con 4 núcleos y 8 GB de memoria, los recursos dinámicos son 0.4 vCPU + 0.8 GB de memoria. En este caso, los recursos consumidos realmente sonmax(0.3 vCPUs + 1 GB, 0.4 vCPUs + 0.8 GB), es decir, 0.4 vCPU + 1 GB de memoria.Nota-
Ámbito de montaje: de forma predeterminada, el directorio de archivos se monta solo en el controlador. Para montarlo también en los ejecutores, habilite Mount to Executor.
-
Varios directorios: puede montar varios directorios de archivos integrados. Sin embargo, los directorios CPFS no pueden usarse junto con otros tipos. Por ejemplo, puede montar varios directorios OSS y NAS juntos, pero no puede montar CPFS con directorios OSS o NAS.
-
Requisitos de red: cuando monte un directorio de archivos NAS o CPFS, debe configurar una conexión de red. La VPC de la conexión de red debe ser la misma que la VPC del destino de montaje de NAS o CPFS.
Mount to Executor
Cuando se habilita, esta función monta el directorio de archivos administrado en los ejecutores de la tarea. Esto les otorga acceso directo de lectura y escritura a los archivos del directorio.
Esta operación de montaje consume recursos de los ejecutores. El porcentaje de recursos consumidos varía según el uso de los archivos montados.
File Resources
Lista de archivos que se distribuirán a todos los nodos ejecutores del clúster.
Para el tipo de recurso, puede seleccionar Workspace u OSS.
Pyfiles Resources
Cuando envíe la tarea, los archivos especificados mediante el parámetro
--py-filesse distribuyen como archivos de dependencia de Python.Para el tipo de recurso, puede seleccionar Workspace u OSS.
Archive Resources
Cuando envíe la tarea, los archivos especificados mediante el parámetro
--archivesse descomprimen y se distribuyen a los objetos archivados en el ejecutor.Para el tipo de recurso, puede seleccionar Workspace u OSS.
JAR Resources
Cuando envíe la tarea, especifique los archivos JAR de dependencia necesarios mediante el parámetro
--jars.Para el tipo de recurso, puede seleccionar Workspace u OSS.
spark.driver.cores
Número de núcleos de CPU que usa el controlador en la aplicación de Spark.
spark.driver.memory
Cantidad de memoria disponible para el controlador en la aplicación de Spark.
spark.executor.cores
Número de núcleos de CPU virtuales que usa cada ejecutor en la aplicación de Spark.
spark.executor.memory
Cantidad de memoria disponible para cada ejecutor en la aplicación de Spark.
spark.executor.instances
Número de ejecutores asignados por Spark.
Dynamic Resource Allocation
Deshabilitada de forma predeterminada. Cuando la habilite, configure los siguientes parámetros:
-
Minimum Number of Executors: el valor predeterminado es 2.
-
Maximum Number of Executors: si no se establece spark.executor.instances, el valor predeterminado es 10.
More Memory Configurations
-
spark.driver.memoryOverhead: memoria fuera del heap disponible para el controlador. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.driver.memory). -
spark.executor.memoryOverhead: memoria fuera del heap disponible para cada ejecutor. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.executor.memory). -
spark.memory.offHeap.size: cantidad de memoria fuera del heap disponible para Spark. El valor predeterminado es 1 GB.
Este parámetro surte efecto solo cuando
spark.memory.offHeap.enabledse establece entrue. Cuando se usa el motor Fusion, esta función se habilita de forma predeterminada con 1 GB de memoria fuera del heap.
Spark Configuration
Introduzca la información de configuración de Spark. Separe los pares clave-valor con un espacio. Por ejemplo,
key value.Tags
Introduzca pares clave-valor para las etiquetas. Las etiquetas le ayudan a gestionar las tareas con mayor comodidad y precisión.
SQL
Parámetro
Descripción
SQL File
Archivo necesario cuando envía la tarea.
Workspace: archivo de la página Artifacts.
OSS: archivo de Alibaba Cloud OSS.
Execute Statement: ejecute instrucciones SQL directamente sin subir un archivo.
Engine Version
Versión de Spark. Para obtener más información, consulte Engine versions.
Timeout
Tiempo máximo permitido para que esta tarea finalice. Si la tarea se ejecuta por más tiempo que este umbral, el sistema la detiene automáticamente. El valor predeterminado está vacío, lo que significa que no se establece ningún límite de tiempo de espera.
Network Connection
Conexión de red existente para acceder a fuentes de datos en una VPC o a servicios externos. Para obtener más información, consulte Network connectivity between EMR Serverless Spark and other VPCs.
Mount Integrated File Directory
Deshabilitada de forma predeterminada. Para usar esta función, agregue un directorio de archivos en la página Artifacts, en la pestaña Integrated File Directory. Para obtener más información, consulte Manage the integrated file directory.
Cuando se habilita, el sistema monta el directorio de archivos administrado en la tarea. Esto le permite leer y escribir en el directorio.
La operación de montaje consume recursos de cómputo del controlador. La cantidad consumida corresponde al mayor de los dos valores siguientes:
Recursos fijos: 0.3 vCPU + 1 GB de memoria.
Recursos dinámicos: 10 % de los recursos de
spark.driver(es decir, 10 % de los núcleos y la memoria despark.driver).
Por ejemplo, si
spark.driverse configura con 4 núcleos y 8 GB de memoria, los recursos dinámicos son 0.4 vCPU + 0.8 GB de memoria. En este caso, los recursos consumidos realmente sonmax(0.3 vCPUs + 1 GB, 0.4 vCPUs + 0.8 GB), es decir, 0.4 vCPU + 1 GB de memoria.Nota-
Ámbito de montaje: de forma predeterminada, el directorio de archivos se monta solo en el controlador. Para montarlo también en los ejecutores, habilite Mount to Executor.
-
Varios directorios: puede montar varios directorios de archivos integrados. Sin embargo, los directorios CPFS no pueden usarse junto con otros tipos. Por ejemplo, puede montar varios directorios OSS y NAS juntos, pero no puede montar CPFS con directorios OSS o NAS.
-
Requisitos de red: cuando monte un directorio de archivos NAS o CPFS, debe configurar una conexión de red. La VPC de la conexión de red debe ser la misma que la VPC del destino de montaje de NAS o CPFS.
Mount to Executor
Cuando se habilita, el sistema monta el directorio de archivos administrado en los ejecutores de la tarea. Esto les permite leer y escribir en el directorio.
La operación de montaje consume recursos de los ejecutores. El porcentaje de recursos consumidos varía según el uso de los archivos.
spark.driver.cores
Número de núcleos de CPU que usa el controlador en la aplicación de Spark.
spark.driver.memory
Cantidad de memoria disponible para el controlador en la aplicación de Spark.
spark.executor.cores
Número de núcleos de CPU virtuales que usa cada ejecutor en la aplicación de Spark.
spark.executor.memory
Cantidad de memoria disponible para cada ejecutor en la aplicación de Spark.
spark.executor.instances
Número de ejecutores asignados por Spark.
Dynamic Resource Allocation
Deshabilitada de forma predeterminada. Cuando la habilite, configure los siguientes parámetros:
-
Minimum Number of Executors: el valor predeterminado es 2.
-
Maximum Number of Executors: si no se establece spark.executor.instances, el valor predeterminado es 10.
More Memory Configurations
-
spark.driver.memoryOverhead: memoria fuera del heap disponible para el controlador. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.driver.memory). -
spark.executor.memoryOverhead: memoria fuera del heap disponible para cada ejecutor. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.executor.memory). -
spark.memory.offHeap.size: cantidad de memoria fuera del heap disponible para Spark. El valor predeterminado es 1 GB.
Este parámetro surte efecto solo cuando
spark.memory.offHeap.enabledse establece entrue. Cuando se usa el motor Fusion, esta función se habilita de forma predeterminada con 1 GB de memoria fuera del heap.
Spark Configuration
Introduzca la información de configuración de Spark. Separe los pares clave-valor con un espacio. Por ejemplo,
key value.Tags
Introduzca pares clave-valor para las etiquetas. Las etiquetas le ayudan a gestionar las tareas con mayor comodidad y precisión.
Spark Submit
Parámetro
Descripción
Engine Version
Versión de Spark. Para obtener más información, consulte Engine versions.
Script
Introduzca su script de Spark Submit.
A continuación se muestra un ejemplo de código:
--class org.apache.spark.examples.SparkPi \ --conf spark.executor.memory=2g \ oss://<YourBucket>/spark-examples_2.12-3.5.2.jarTimeout
Tiempo máximo permitido para que esta tarea finalice. Si la tarea se ejecuta por más tiempo que este umbral, el sistema la detiene automáticamente. El valor predeterminado está vacío, lo que significa que no se establece ningún límite de tiempo de espera.
Network Connection
Conexión de red existente para acceder a fuentes de datos en una VPC o a servicios externos. Para obtener más información, consulte Network connectivity between EMR Serverless Spark and other VPCs.
Mount Integrated File Directory
Deshabilitada de forma predeterminada. Para usar esta función, agregue un directorio de archivos en la página Artifacts, en la pestaña Integrated File Directory. Para obtener más información, consulte Manage the integrated file directory.
Cuando se habilita, esta función monta el directorio de archivos administrado en la aplicación. Esto le permite leer y escribir directamente en el directorio.
La operación de montaje consume recursos de cómputo del controlador. La cantidad consumida corresponde al mayor de los dos valores siguientes:
Recursos fijos: 0.3 vCPU + 1 GB de memoria.
Recursos dinámicos: 10 % de los recursos de
spark.driver(es decir, 10 % de los núcleos y la memoria despark.driver).
Por ejemplo, si
spark.driverse configura con 4 núcleos y 8 GB de memoria, los recursos dinámicos son 0.4 vCPU + 0.8 GB de memoria. En este caso, los recursos consumidos realmente sonmax(0.3 vCPUs + 1 GB, 0.4 vCPUs + 0.8 GB), es decir, 0.4 vCPU + 1 GB de memoria.Nota-
Ámbito de montaje: de forma predeterminada, el directorio de archivos se monta solo en el controlador. Para montarlo también en los ejecutores, habilite Mount to Executor.
-
Varios directorios: puede montar varios directorios de archivos integrados. Sin embargo, los directorios CPFS no pueden usarse junto con otros tipos. Por ejemplo, puede montar varios directorios OSS y NAS juntos, pero no puede montar CPFS con directorios OSS o NAS.
-
Requisitos de red: cuando monte un directorio de archivos NAS o CPFS, debe configurar una conexión de red. La VPC de la conexión de red debe ser la misma que la VPC del destino de montaje de NAS o CPFS.
Mount to Executor
Cuando se habilita, esta función monta el directorio de archivos administrado en los ejecutores de la aplicación. Esto les permite leer y escribir directamente en el directorio.
La cantidad de recursos de ejecutor consumidos depende del uso que se dé a los archivos montados.
spark.driver.cores
Número de núcleos de CPU que usa el controlador en la aplicación de Spark.
spark.driver.memory
Cantidad de memoria disponible para el controlador en la aplicación de Spark.
spark.executor.cores
Número de núcleos de CPU virtuales que usa cada ejecutor en la aplicación de Spark.
spark.executor.memory
Cantidad de memoria disponible para cada ejecutor en la aplicación de Spark.
spark.executor.instances
Número de ejecutores asignados por Spark.
Dynamic Resource Allocation
Deshabilitada de forma predeterminada. Cuando la habilite, configure los siguientes parámetros:
-
Minimum Number of Executors: el valor predeterminado es 2.
-
Maximum Number of Executors: si no se establece spark.executor.instances, el valor predeterminado es 10.
More Memory Configurations
-
spark.driver.memoryOverhead: memoria fuera del heap disponible para el controlador. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.driver.memory). -
spark.executor.memoryOverhead: memoria fuera del heap disponible para cada ejecutor. Si no se establece este parámetro, Spark asigna automáticamente un valor basado en el valor predeterminado, que es
max(384 MB, 10% * spark.executor.memory). -
spark.memory.offHeap.size: cantidad de memoria fuera del heap disponible para Spark. El valor predeterminado es 1 GB.
Este parámetro surte efecto solo cuando
spark.memory.offHeap.enabledse establece entrue. Cuando se usa el motor Fusion, esta función se habilita de forma predeterminada con 1 GB de memoria fuera del heap.
Spark Configuration
Introduzca la información de configuración de Spark. Separe los pares clave-valor con un espacio. Por ejemplo,
key value.Tags
Introduzca pares clave-valor para las etiquetas. Las etiquetas le ayudan a gestionar las tareas con mayor comodidad y precisión.
(Opcional) En el lado derecho de la página de desarrollo de la tarea, haga clic en la pestaña Version Information para consultar o comparar versiones.
-
Ejecute y publique la tarea.
-
Haga clic en Run.
Para consultar los detalles de la tarea, vaya al área Execution Records en la parte inferior después de que la tarea se haya ejecutado y haga clic en Details en la columna Actions.
En la esquina superior derecha, haga clic en Publish.
En el cuadro de diálogo Publish, introduzca Remarks y haga clic en OK.
-
Documentos relacionados
Preguntas frecuentes
P1: ¿Cómo establezco una política de reintento automático para las tareas con errores?
Para mejorar la tolerancia a fallos de las tareas de streaming, establezca una política de reintento automático mediante los dos elementos de configuración de Spark que se muestran a continuación:
spark.emr.serverless.streaming.fail.retry.interval 60 # Retry interval: 60 seconds
spark.emr.serverless.streaming.fail.retry.time 3 # Maximum retries: 3
**P2: ¿Qué hago si al llamar a la operación StartJobRun se devuelve el error "ApplicationConfigs is empty"?**
Este error ocurre cuando el campo ApplicationConfigs de los parámetros de la solicitud está vacío o tiene un formato incorrecto. Para resolverlo, consulte el código de ejemplo para iniciar un trabajo de Spark con el SDK de Python y asegúrese de que la solicitud incluya un parámetro ApplicationConfigs configurado correctamente y que no esté vacío.
Palabras clave: StartJobRun, ApplicationConfigs, SDK, error de API.
P3: ¿Qué hago si un trabajo falla durante el inicio del contenedor por falta de recursos?
Este problema suele deberse a la falta de recursos, lo que provoca que el contenedor falle inmediatamente al iniciarse. Para resolverlo, vaya a la consola de EMR Serverless Spark, localice el recurso de cómputo correspondiente y aumente el número de núcleos del executor (spark.executor.cores) y el tamaño de memoria del executor (spark.executor.memory) en la configuración de recursos del trabajo. Después, envíe nuevamente el trabajo para comprobar que el problema se haya resuelto.
Palabras clave: fallo de contenedor, recursos insuficientes, Executor Core, Executor Memory, OOM.