En esta página, se incluyen las preguntas frecuentes y respuestas sobre Dataproc Serverless.
¿Cuándo debo usar Dataproc Serverless para Spark en lugar de Dataproc en Compute Engine?
Dataproc sin servidores:
- Admite cargas de trabajo por lotes de Spark y sesiones interactivas en notebooks de Jupyter del kernel de PySpark.
- Dataproc Serverless crea y administra la carga de trabajo y la infraestructura de 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?
Ejecutar trabajos de transmisión con las 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.
Entrenar modelos con Spark MLlib
Usa notebooks interactivos de SQL para la exploración de datos, los gráficos, las series temporales y el análisis geoespacial.
Organiza Dataproc sin servidores para las cargas de trabajo de Spark con Cloud Composer, un servicio administrado de Apache Airflow.
¿Cómo debería 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 la cuota de recursos de Google Cloud. Puedes ejecutar tantas cargas de trabajo en paralelo como te permitan las cuotas de tus 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 Usa contenedores personalizados con Dataproc Serverless para Spark.
¿Puedo especificar recursos de memoria y disco para 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 controlador y ejecutor para asignar cuando envíes una carga de trabajo (consulta Propiedades de asignación de recursos).
¿Cómo puedo especificar el rango de direcciones IP para 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 sin servidores de Dataproc.
/16
es un rango de direcciones típico de CIDR especificado por el usuario para una red de VPC sin servidores de Dataproc.
Puedes limitar el rango de direcciones IP de tu red según la cantidad de cargas de trabajo simultáneas que planeas ejecutar.
¿Dataproc Serverless admite la residencia de datos?
Sí. Debes especificar la región en la que se procesa tu carga de trabajo. Ubica los 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 enviar la carga de trabajo con errores.
¿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. Los envíos múltiples por lotes no comparten ni vuelven a usar los recursos de procesamiento.
Prácticas recomendadas:
Optimiza tu carga de trabajo para trabajos de ejecución media, no de ejecución corta.
Conserva 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 bajas 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 sin servidores de Dataproc solo compiten por los recursos si tu cuota de recursos es insuficiente para ejecutar todas las cargas de trabajo que se ejecutan en simultáneo. De lo contrario, las cargas de trabajo estará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.
¿Tengo que configurar un servidor de historial persistente de Dataproc?
Configurar un servidor de historial persistente (PHS) para usarlo con Dataproc Serverless es opcional.Puedes usar el PHS para ver eventos de Spark y otros registros en un bucket de Cloud Storage especificado hasta el período estándar de almacenamiento en etapa intermedia y bucket temporal de Dataproc sin servidores de 90 días.
¿Qué registros de Spark sin servidores de Dataproc están disponibles?
Los ejecutores de Spark y los registros del controlador 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 del ejecutor.
¿Puedo configurar la cantidad de ejecutores para mi carga de trabajo de Spark?
Sí. Puedes configurar 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á tareas 4 * 2 = 8
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 para cada carga de trabajo es la misma, ejecutarán la misma cantidad de tareas. Puedes usar la propiedad spark.executor.cores
a fin de establecer la cantidad de núcleos por ejecutor para tu carga de trabajo de Dataproc Serverless.
¿Qué métricas de Spark usa Dataproc Serverless para el ajuste de escala automático?
Dataproc Serverless para Spark analiza las métricas de asignación dinámica de Spark maximum-needed
y running
a fin de determinar si se debe escalar verticalmente o reducir.
Consulta Dataproc sin servidores para el ajuste de escala automático de Spark.
¿Puedo configurar el comportamiento del ajuste de escala automático sin servidores de Dataproc Serverless con las propiedades de Spark?
Sí. El ajuste de escala automático sin servidores de Dataproc se basa en la asignación dinámica de Spark y está habilitado de forma predeterminada. Puedes ajustar las siguientes propiedades de Spark y las 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 trabajadores operan como procesos de JVM. En los lenguajes de JVM, el archivo JAR es la forma principal de empaquetar código. Debes pasar el archivo JAR a Dataproc Serverless cuando envíes una carga de trabajo.