Lindorm Distributed Processing System (LDPS) ejecuta trabajos de Spark en grupos de recursos elásticos administrados por Kubernetes. Esta página enumera todos los parámetros configurables para los trabajos de Spark de LDPS y explica cómo pasarlos según cada método de envío.
Parámetros de Spark
Parámetros restringidos
El sistema establece los siguientes parámetros, por lo que no se pueden personalizar.
|
Parámetro |
Descripción |
|
|
Endpoint del sistema de administración del clúster. |
|
|
Modo de despliegue del controlador de Spark. |
Parámetros de recursos
LDPS se ejecuta en grupos de recursos elásticos facturados bajo el modelo pay-as-you-go. De forma predeterminada, no existe un límite máximo en los recursos que puede solicitar un trabajo. Para establecer un máximo, consulte Modify the configurations of LDPS.
Los parámetros de recursos aplican a todos los trabajos JDBC, JAR y Python enviados a LDPS. Se dividen en parámetros de especificación y parámetros de capacidad.
Parámetros de especificación
Parámetros de especificación básicos
|
Parámetro |
Descripción |
Predeterminado |
|
|
Memoria heap del controlador. Unidad: mebibytes. |
|
|
|
Memoria off-heap del controlador. Unidad: mebibytes. |
|
|
|
Tamaño del disco local del controlador. Unidad: GB. |
|
|
|
Núcleos de CPU por ejecutor. |
|
|
|
Memoria heap por ejecutor. Unidad: mebibytes. |
|
|
|
Memoria off-heap por ejecutor. Unidad: mebibytes. |
|
|
|
Tamaño del disco local por ejecutor. Unidad: GB. |
|
Parámetros de especificación avanzados
| Parámetro | Descripción | Predeterminado |
|---|---|---|
spark.{driver/executor}.resourceTag |
Conjunto predefinido de especificaciones de recursos. Al configurarlo, LDPS aplica automáticamente los valores correspondientes de CPU, memoria y disco. Valores válidos: xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge. |
Ninguna |
spark.kubernetes.{driver/executor}.ecsModelPreference |
Modelos preferidos de nodos de cómputo, listados por orden de prioridad. LDPS prueba cada modelo en secuencia; si ninguno está disponible, selecciona uno compatible que coincida con la especificación de recursos. Especifique hasta cuatro modelos separados por comas. Ejemplo: hfg6,g6. |
Ninguna |
spark.kubernetes.{driver/executor}.annotation.k8s.aliyun.com/eci-use-specs |
Especificación de GPU de Elastic Container Instance (ECI). Para conocer los tipos de instancia de GPU compatibles, consulte Specify ECS instance types to create pods. | ecs.gn7i-c8g1.2xlarge |
spark.{driver/executor}.resource.gpu.vendor |
Proveedor de la GPU. Debe coincidir con la especificación de GPU definida en eci-use-specs. |
nvidia.com |
spark.{driver/executor}.resource.gpu.amount |
Cantidad de GPU. Establezca este valor en 1. |
1 |
spark.{driver/executor}.resource.gpu.discoveryScript |
Ruta del script de detección de GPU que se usa para identificar y vincular recursos de GPU al iniciar el controlador o el ejecutor. Establezca este valor en /opt/spark/examples/src/main/scripts/getGpusResources.sh. |
/opt/spark/examples/src/main/scripts/getGpusResources.sh |
spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs |
Especificación de la instancia del ejecutor con capacidad de disco local ampliada. Consulte los valores compatibles más adelante. | Ninguna |
El parámetro spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs admite las siguientes especificaciones de ejecutor:
|
Valor |
Núcleos de CPU |
Memoria |
|
|
8 |
32 GB |
|
|
16 |
64 GB |
|
|
24 |
96 GB |
|
|
32 |
128 GB |
|
|
56 |
224 GB |
Cuando utilice spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs, configure también los dos parámetros siguientes:
spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.mount.path=/varspark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.options.medium=LocalRaid0Si el tipo de instancia de ejecutor especificado no está disponible, comuníquese con el soporte técnico de Lindorm (ID de DingTalk: s0s3eg3).
Asignación de especificaciones de resourceTag
|
Valor de resourceTag |
** |
** |
** |
** |
|
|
4 |
8192m |
8192m |
50 GB |
|
|
8 |
16384m |
16384m |
100 GB |
|
|
16 |
32768m |
32768m |
200 GB |
|
|
32 |
65536m |
65536m |
400 GB |
|
|
64 |
131072m |
131072m |
400 GB |
Parámetros de capacidad
|
Parámetro |
Descripción |
Predeterminado |
|
|
Cantidad de ejecutores asignados al trabajo. |
|
|
|
Habilita la asignación dinámica de recursos. Cuando está habilitada, LDPS solicita y libera ejecutores automáticamente según la carga de trabajo en tiempo real. Valores válidos: |
|
|
|
Cantidad mínima de ejecutores cuando la asignación dinámica de recursos está habilitada. |
|
|
|
Cantidad máxima de ejecutores cuando la asignación dinámica de recursos está habilitada. Este valor equivale a la cantidad de tareas simultáneas. |
|
|
|
Tiempo que se mantiene un ejecutor inactivo antes de liberarlo. Unidad: segundos. |
|
Parámetros de ejecución
|
Parámetro |
Descripción |
Predeterminado |
|
|
Habilita la ejecución especulativa. Cuando está habilitada, el controlador vuelve a enviar las tareas que se ejecutan mucho más lento que otras dentro de la misma etapa (colas largas), para evitar retrasos en el trabajo. Valores válidos: |
|
|
|
Cantidad máxima de errores de tarea permitidos antes de que falle el trabajo. |
|
|
|
Almacena los registros del ejecutor en LindormDFS. Establezca este valor en |
|
|
|
Ruta del paquete JAR obligatorio para el trabajo. Admite rutas de OSS o de Hadoop Distributed File System (HDFS). Si utiliza JDBC, establezca este valor únicamente en una ruta de HDFS. Si utiliza una ruta de OSS, configure también los parámetros de OSS que se muestran a continuación. |
Ninguna |
|
|
Endpoint de OSS. Para conocer los valores de endpoint por región, consulte Regions and endpoints. |
Ninguna |
|
|
AccessKey ID de su cuenta de Alibaba Cloud o usuario de RAM. Consulte Obtain an AccessKey pair. |
Ninguna |
|
|
AccessKey secret de su cuenta de Alibaba Cloud o usuario de RAM. Consulte Obtain an AccessKey pair. |
Ninguna |
|
|
Clase de implementación del sistema de archivos para OSS. Establezca este valor en |
Ninguna |
|
|
Paralelismo predeterminado para tareas que no son de SQL, incluidas las lecturas de origen de datos y las etapas de shuffle. |
Ninguna |
|
|
Cantidad de particiones de shuffle para tareas de SQL. |
|
Parámetros de monitoreo
| Parámetro | Descripción | Predeterminado |
|---|---|---|
spark.monitor.cmd |
Comandos de monitoreo que se ejecutan a intervalos regulares. Separe varios comandos con punto y coma (;). Los resultados se escriben en los registros del trabajo. Nota
Este parámetro no se puede configurar al enviar trabajos mediante Beeline o JDBC. |
Ninguna |
spark.monitor.interval |
Intervalo entre las ejecuciones de los comandos de monitoreo. Unidad: segundos. | 60 |
spark.monitor.timeout |
Tiempo de espera de cada comando de monitoreo. Si un comando supera este límite, se omite y se ejecuta el siguiente. Unidad: segundos. | 2 |
Ejemplos de comandos de monitoreo:
# Single command
"spark.monitor.cmd": "top -b -n 1"
# Multiple commands
"spark.monitor.cmd": "top -b -n 1; vmstat; free -m; iostat -d -x -c -k; df -h; sar -n DEV 1 1; netstat"
Comandos de monitoreo comunes por categoría:
|
Categoría |
Comandos |
|
Estado del sistema |
|
|
Memoria |
|
|
E/S de disco |
|
|
Uso de disco |
|
|
Red |
|
Parámetros de registro
|
Parámetro |
Descripción |
Predeterminado |
|
|
Nivel de salida de registros del trabajo. |
|
Valores válidos para spark.log.level, del más detallado al menos detallado:
|
Nivel |
Descripción |
|
|
Toda la salida de registros, incluida la información de depuración más detallada. |
|
|
Más detallado que DEBUG; registra pasos de ejecución muy específicos. |
|
|
Registros de nivel de depuración que incluyen el estado detallado del entorno de ejecución. |
|
|
Registros informativos generales sobre eventos normales de ejecución. |
|
|
Advertencias sobre posibles problemas que no detienen la ejecución. |
|
|
Errores que ocurren durante la ejecución. |
|
|
Errores críticos que impiden que el programa continúe. |
|
|
Deshabilita toda la salida de registros. |
Parámetros de Spark de código abierto
Para conocer los parámetros heredados de Spark de código abierto, consulte Configuración de Spark.
Configurar parámetros según el método de envío
Al enviar un trabajo a LDPS, el método utilizado determina la forma en que se pasan los parámetros.
Beeline
Edite conf/beeline.conf en el directorio del paquete de Spark donde se encuentra la herramienta de línea de comandos de Beeline.
# LDPS endpoint
# Format: jdbc:hive2://<host>:<port>/;?token=<token>
endpoint=jdbc:hive2://ld-bp13ez23egd123****-proxy-ldps-pub.lindorm.aliyuncs.com:10009/;?token=jfjwi2453-fe39-cmkfe-afc9-01eek2j5****
# Connection credentials (default: root/root)
user=root
password=root
# Set to false to use a dedicated Spark session for this connection
shareResource=false
# Spark parameters
spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=3
Para ver la configuración completa de Beeline, consulte Getting started.
JDBC
Agregue los parámetros de Spark a la cadena de conexión JDBC como pares clave-valor después del token.
jdbc:hive2://<host>:<port>/;?token=<token>;spark.executor.memory=8g;spark.sql.shuffle.partitions=2
Para conocer el formato completo de la URL de JDBC, consulte Use JDBC in application development.
spark.jars no se puede establecer en una ruta de OSS al enviar trabajos mediante JDBC. Utilice una ruta de HDFS en su lugar.
Trabajos JAR
Configure los parámetros en la plantilla del trabajo al enviar un trabajo de Java:
Consola de Lindorm: Configure los parámetros en la plantilla de contenido del trabajo. Consulte Manage jobs in the Lindorm console.
Data Management Service (DMS): Configure los parámetros en la sección Job configuration de la página del nodo de trabajo. Consulte Use DMS to manage jobs.
Trabajos de Python
Configure los parámetros en la plantilla del trabajo al enviar un trabajo de Python:
Consola de Lindorm: Configure los parámetros en la plantilla de contenido del trabajo. Consulte Manage jobs in the Lindorm console.
Data Management Service (DMS): Configure los parámetros en la sección Job configuration de la página del nodo de trabajo. Consulte Use DMS to manage jobs.