En esta página, se incluyen preguntas frecuentes sobre Dataproc Serverless con respuestas.
¿Cuándo debo usar Dataproc Serverless para Spark en lugar de Dataproc en Compute Engine?
Dataproc sin servidores:
- Admite cargas de trabajo por lotes y sesiones interactivas de Spark en notebooks de Jupyter del kernel de PySpark.
- Dataproc Serverless crea y administra tu carga de trabajo y la infraestructura de la sesión interactiva.
Dataproc en Compute Engine:
Admite el envío de diferentes tipos de trabajos de Spark y trabajos basados en otros componentes de código abierto, como Flink, Hadoop, Hive, Pig, Presto y otros.
No crea ni administra la infraestructura. Creas y administras tus clústeres de Dataproc.
¿Qué puedo hacer con Dataproc Serverless para Spark?
Ejecuta trabajos de transmisión con bibliotecas de transmisión de Spark. Nota: La transmisión no es un servicio administrado, por lo que debes administrar los puntos de control y los reinicios.
Entrena modelos con Spark MLlib.
Usa notebooks de SQL interactivos para la exploración de datos, los gráficos, las series temporales y los análisis geoespaciales.
Organiza las cargas de trabajo de Dataproc Serverless para Spark con Cloud Composer, un servicio administrado de Apache Airflow.
¿Cómo debo configurar un plan de ejecución de cargas de trabajo?
Puedes ejecutar cargas de trabajo de forma simultánea o secuencial. Tu plan de ejecución afecta tu cuota de recursos de Google Cloud. Puedes ejecutar tantas cargas de trabajo en paralelo como lo permitan las cuotas de recursos por lotes.
¿Puedo usar una imagen personalizada con Dataproc Serverless para Spark?
- Sí. Puedes usar una imagen de contenedor personalizada en lugar de la imagen de contenedor predeterminada. Consulta Cómo usar contenedores personalizados con Dataproc sin servidores para Spark.
¿Puedo especificar recursos de memoria y disco para las cargas de trabajo de Spark sin servidores de Dataproc?
Sí. Puedes especificar los niveles de procesamiento y disco del ejecutor y del controlador premium, y la cantidad de recursos de procesamiento y disco del ejecutor y del controlador que se asignarán cuando envíes una carga de trabajo (consulta Propiedades de asignación de recursos).
¿Cómo puedo especificar el rango de direcciones IP de mi red de VPC sin servidores de Dataproc?
Las cargas de trabajo de Dataproc Serverless para Spark se ejecutan en tu entorno.
Cada controlador y ejecutor de Spark en una carga de trabajo de Spark sin servidores consume una dirección IP interna en tu red de VPC de Dataproc Serverless.
/16
es un rango de direcciones CIDR típico especificado por el usuario para una red de VPC sin servidores de Dataproc.
Puedes limitar el rango de direcciones IP de tu red en función de la cantidad de cargas de trabajo simultáneas que planeas ejecutar.
¿Dataproc Serverless admite la residencia de datos?
Sí. Especifica la región en la que se procesa tu carga de trabajo. Ubica tus conjuntos de datos de entrada y salida en la región especificada.
¿Cómo selecciona Dataproc Serverless una zona dentro de la región especificada para ejecutar la carga de trabajo?
Dataproc Serverless selecciona la zona de Compute Engine en la que ejecuta una carga de trabajo según la capacidad y la disponibilidad. Si una zona deja de estar disponible después de que se inicia una carga de trabajo, esta falla y debes volver a enviarla.
¿Cómo usan los recursos de procesamiento las cargas de trabajo de Dataproc Serverless?
Cada carga de trabajo se ejecuta en sus propios recursos de procesamiento. Las cargas de lotes múltiples no comparten ni reutilizan recursos de procesamiento.
Prácticas recomendadas:
Optimiza tu carga de trabajo para trabajos de ejecución media, no para trabajos de ejecución breve.
Persistir los datos a los que acceden varias cargas de trabajo en Cloud Storage
¿Dónde puedo encontrar información sobre los anuncios, las funciones, las correcciones de errores, los problemas conocidos y las baja de Dataproc Serverless?
Consulta las notas de la versión de Dataproc Serverless.
¿Las cargas de trabajo simultáneas compiten por los recursos?
Las cargas de trabajo de Dataproc sin servidores solo compiten por los recursos si tu cuota de recursos no es suficiente para ejecutar todas las cargas de trabajo que se ejecutan de forma simultánea. De lo contrario, las cargas de trabajo están completamente aisladas entre sí.
¿Cómo se asigna la cuota de Dataproc Serverless?
Los lotes sin servidores de Dataproc consumen recursos de Google Cloud. Consulta Cuotas de Dataproc Serverless para obtener más información.
¿Debo configurar un servidor de historial persistente de Dataproc?
La configuración de un servidor de historial persistente (PHS) para usarlo con Dataproc Serverless es opcional.Puedes usar el PHS para ver el evento de Spark y otros registros en un bucket de Cloud Storage especificado hasta y después del período de retención (TTL) estándar de 90 días del bucket de etapa y temporal de Dataproc Serverless.
¿Qué registros de Spark sin servidores de Dataproc están disponibles?
Los ejecutores y registros del controlador de Spark están disponibles en Cloud Logging durante y después de la ejecución de la carga de trabajo de Spark. Además, las aplicaciones de Spark son visibles en la interfaz web del servidor de historial persistente (PHS) mientras se ejecuta la carga de trabajo (selecciona PHS > Aplicaciones incompletas en la IU de PHS).
Si configuras un PHS de Dataproc, este proporciona acceso persistente a los registros de eventos de Spark guardados en Cloud Storage, que proporcionan estadísticas sobre la ejecución de la app de Spark, como los eventos de DAG y ejecutor.
¿Puedo establecer la cantidad de ejecutores para mi carga de trabajo de Spark?
Sí. Puedes establecer la cantidad de ejecutores para una carga de trabajo de Spark con la propiedad spark.executor.instances
. Sin embargo, la cantidad total de núcleos que puede usar una carga de trabajo es más importante que la cantidad de ejecutores, ya que Spark ejecuta 1 tarea por núcleo. Por ejemplo, si una carga de trabajo tiene cuatro ejecutores con dos núcleos cada uno, ejecutará 4 * 2 = 8
tareas al mismo tiempo. También ejecutará la misma cantidad de tareas para una carga de trabajo que tenga dos ejecutores con cuatro núcleos cada uno. Dado que la cantidad de núcleos de cada carga de trabajo es la misma, ejecutarán la misma cantidad de tareas. Puedes usar la
propiedad spark.executor.cores
para establecer la cantidad de núcleos por ejecutor para tu carga de trabajo de Dataproc sin servidores.
¿Qué métricas de Spark usa Dataproc Serverless para el ajuste de escala automático?
Dataproc sin servidores para Spark analiza las métricas de asignación dinámica maximum-needed
y running
de Spark para determinar si se debe aumentar o disminuir la escala.
Consulta Dataproc Serverless para el ajuste de escala automático de Spark.
¿Puedo configurar el comportamiento de escalamiento automático de Dataproc Serverless con propiedades de Spark?
Sí. El ajuste de escala automático de Dataproc sin servidores se basa en la asignación dinámica de Spark y está habilitado de forma predeterminada. Puedes ajustar las siguientes propiedades de Spark y propiedades de asignación dinámica de Spark:
spark.executor.instances
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
¿Por qué debo empaquetar mi código en un archivo JAR para enviar mi carga de trabajo de Spark?
Spark está escrito en Scala, lo que significa que tanto el controlador como los procesos de trabajo operan como procesos de JVM. En los lenguajes JVM, el archivo JAR es la forma principal de empaquetar código. Pasas el archivo JAR a Dataproc Serverless cuando envías una carga de trabajo.