Managed Service para Apache Spark sin servidores te permite ejecutar cargas de trabajo por lotes de Spark y sesiones interactivas en una infraestructura completamente administrada. Las siguientes preguntas y respuestas abarcan temas comunes de implementación, configuración y operaciones. A menos que se indique lo contrario, esta información solo se aplica a las implementaciones sin servidores, no a las implementaciones de clústeres.
¿Cuándo debo usar la implementación sin servidores de Managed Service para Apache Spark en lugar de la implementación de clústeres de Managed Service para Apache Spark?
Implementación sin servidores de Managed Service para Apache Spark:
- Admite cargas de trabajo por lotes de Spark y sesiones interactivas en notebooks de Jupyter con kernel de PySpark.
- Crea y administra la infraestructura de tu carga de trabajo y de la sesión interactiva.
Implementación del clúster de Managed Service para Apache Spark:
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 infraestructura. Tú creas y administras tus clústeres de Managed Service para Apache Spark.
¿Qué puedo hacer con la implementación sin servidores de Managed Service para Apache Spark?
Ejecuta 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 de SQL interactivos para la exploración de datos, los gráficos, las series temporales y el análisis geoespacial.
Organiza las cargas de trabajo de Managed Service para Apache Spark con Managed Service para Apache Airflow, 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 tus cuotas de recursos de Batch.
¿Puedo usar una imagen personalizada con la implementación sin servidores de Managed Service para Apache Spark?
- Sí. Puedes usar una imagen de contenedor personalizada en lugar de la imagen de contenedor predeterminada. Consulta Usa contenedores personalizados con Managed Service para Apache Spark.
¿Puedo especificar recursos de memoria y disco para las cargas de trabajo de Managed Service para Apache Spark?
Sí. Puedes especificar los niveles de procesamiento y disco del ejecutor y el controlador premium, así como la cantidad de recursos de procesamiento y disco del ejecutor y el 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 para mi red de VPC de Managed Service para Apache Spark?
Las cargas de trabajo de Managed Service para Apache 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 Managed Service para Apache Spark.
/16 es un rango de direcciones CIDR típico especificado por el usuario para una red de VPC de Managed Service para Apache Spark.
Puedes limitar el rango de direcciones IP de tu red según la cantidad de cargas de trabajo
simultáneas que planeas ejecutar.
¿Managed Service para Apache Spark admite la residencia de datos?
Sí. Especificas 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 Managed Service para Apache Spark una zona dentro de la región especificada para ejecutar la carga de trabajo?
Managed Service para Apache Spark selecciona la zona de Compute Engine en la que ejecuta una carga de trabajo en función de 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 Managed Service para Apache Spark?
Cada carga de trabajo se ejecuta en sus propios recursos de procesamiento. Los envíos de varios lotes 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 corta.
Conservar 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 Managed Service para Apache Spark?
Consulta las notas de la versión de Managed Service para Apache Spark.
¿Las cargas de trabajo simultáneas compiten por los recursos?
Las cargas de trabajo de Managed Service para Apache Spark 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 Managed Service para Apache Spark?
Los lotes de Managed Service para Apache Spark consumen recursos de Google Cloud . Consulta las cuotas de Dataproc Serverless para obtener más información.
¿Necesito configurar un servidor de historial persistente de Managed Service para Apache Spark?
Configurar un servidor de historial persistente (PHS) para usarlo con Managed Service para Apache Spark es opcional.Puedes usar el PHS para ver los eventos de Spark y otros registros en un bucket de Cloud Storage especificado hasta el período de retención (TTL) de 90 días del bucket de etapa de pruebas y temporal estándar de Managed Service para Apache Spark y después de este.
¿Qué registros de Managed Service para Apache Spark están disponibles?
Los registros de los ejecutores y 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 del PHS).
Si configuras un PHS de Managed Service para Apache Spark, este proporciona acceso persistente a los registros de eventos de Spark guardados en Cloud Storage, que ofrecen información sobre la ejecución de la app de Spark, como los eventos de DAG y del 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 para 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 Managed Service para Apache Spark.
¿Qué métricas de Spark usa Managed Service para Apache Spark para el ajuste de escala automático?
Managed Service para Apache Spark analiza las métricas de asignación dinámica de Spark maximum-needed y running
para determinar si se debe aumentar o reducir la escala.
Consulta Ajuste de escala automático de Managed Service para Apache Spark.
¿Puedo configurar el comportamiento del escalado automático de Managed Service para Apache Spark con las propiedades de Spark?
Sí. El ajuste de escala automático de Managed Service para Apache Spark 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.instancesspark.dynamicAllocation.initialExecutorsspark.dynamicAllocation.minExecutorsspark.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 los procesos del controlador y del trabajador funcionan como procesos de JVM. En los lenguajes de JVM, el archivo JAR es la forma principal de empaquetar código. Pasas el archivo JAR a Managed Service para Apache Spark cuando envías una carga de trabajo.