Comparación con Google Cloud Serverless para Apache Spark

Los Google Cloud clientes que utilizan Apache Spark para ejecutar sus cargas de trabajo de procesamiento y analíticas de datos deben tomar una decisión importante: elegir entre Dataproc en Compute Engine (denominado "Dataproc" en este documento) y Serverless para Apache Spark. Aunque ambos servicios ofrecen un entorno de Spark gestionado, altamente escalable, listo para producción y seguro, compatible con software libre y con asistencia completa para formatos de datos, estas dos plataformas se diferencian fundamentalmente en la forma en que se gestiona y se factura la infraestructura subyacente.

En este documento se compara Google Cloud Serverless para Apache Spark con Dataproc y se enumeran sus funciones y capacidades para ayudarte a decidir cuál es la mejor solución para tus cargas de trabajo de Spark.

Comparar Serverless para Apache Spark con Dataproc

Si quieres aprovisionar y gestionar la infraestructura, y luego ejecutar cargas de trabajo en Spark y otros frameworks de procesamiento de código abierto, usa Dataproc en Compute Engine. En la siguiente tabla se muestran las principales diferencias entre Dataproc en Compute Engine y Serverless para Apache Spark.

Competencia Serverless for Apache Spark Dataproc en Compute Engine
Frameworks de procesamiento Cargas de trabajo por lotes y sesiones interactivas: Spark Spark. Otros frameworks de código abierto, como Hive, Flink, Trino y Kafka
Sin servidor No
Tiempo de inicio 50s 120 s
Control de infraestructuras No
Gestión de recursos Sin servidor YARN
Compatibilidad con GPU
Sesiones interactivas No
Contenedores personalizados No
Acceso a la VM (SSH) No
Versiones de Java Java 17 y 21 Java 17 y versiones anteriores

Decidir qué servicio de Spark es el más adecuado

En esta sección se describen las principales ventajas y los casos prácticos de cada servicio para ayudarte a seleccionar el que mejor se adapte a tus cargas de trabajo de Spark.

Información general

Dataproc y Serverless para Apache Spark se diferencian en el grado de control, la gestión de la infraestructura y el modo de facturación que ofrece cada uno.

  • Spark gestionado por Dataproc: Dataproc ofrece clústeres de Spark como servicio, que ejecutan Spark gestionado en tu infraestructura de Compute Engine. Pagas por el tiempo de actividad del clúster.
  • Serverless para Apache Spark: ofrece tareas de Spark como servicio, que se ejecutan en una infraestructura Google Cloudtotalmente gestionada. Pagas por el tiempo de ejecución de los trabajos.

Debido a estas diferencias, cada servicio es más adecuado en los siguientes casos prácticos:

Servicio Casos prácticos
Dataproc Entornos compartidos de larga duración
Cargas de trabajo que requieren un control granular de la infraestructura
Migración de entornos de Hadoop y Spark antiguos
Serverless for Apache Spark Diferentes entornos de trabajo dedicados
Cargas de trabajo por lotes programadas
Gestión de código priorizada sobre la gestión de la infraestructura

Diferencias principales

Función Dataproc Serverless for Apache Spark
Modelo de gestión Basado en clústeres. Usted aprovisiona y gestiona los clústeres. Entorno de ejecución sin servidor totalmente gestionado.
Control y personalización Mayor control sobre la configuración del clúster, los tipos de máquina y el software. Posibilidad de usar VMs de Spot y reutilizar reservas y capacidad de recursos de Compute Engine. Adecuado para cargas de trabajo que dependen de formas de máquinas virtuales específicas, como las arquitecturas de CPU. Menos control sobre la infraestructura, con la posibilidad de enviar código y especificar parámetros de Spark.
Use cases Clústeres compartidos de larga duración, migración de cargas de trabajo de Hadoop y Spark con configuraciones personalizadas, cargas de trabajo que requieren una personalización profunda. Consultas ad hoc, análisis interactivos, nuevas canalizaciones de Spark y cargas de trabajo con necesidades de recursos impredecibles.
Sobrecarga operativa Mayor sobrecarga que requiere gestión, escalado y mantenimiento de clústeres. Menor sobrecarga. Google Cloud gestiona la infraestructura, el escalado y el aprovisionamiento, lo que permite un modelo NoOps. Gemini Cloud Assist facilita la solución de problemas, mientras que el ajuste automático de Serverless para Apache Spark ayuda a ofrecer un rendimiento óptimo.
Modelo de eficiencia La eficiencia se consigue compartiendo clústeres entre tareas y equipos con un modelo multiinquilino. Sin sobrecarga de computación inactiva: los recursos de computación solo se asignan cuando se está ejecutando el trabajo. Sin costes de inicio ni de apagado. Se admiten sesiones interactivas compartidas para mejorar la eficiencia.
Control de ubicación Los clústeres son zonales. La zona se puede seleccionar automáticamente durante la creación del clúster. Serverless para Apache Spark admite cargas de trabajo regionales sin coste adicional para ofrecer más fiabilidad y disponibilidad.
Coste Se factura el tiempo que el clúster está en ejecución, incluido el tiempo de inicio y de finalización, en función del número de nodos. Incluye la tarifa de licencia de Dataproc más el coste de la infraestructura. Se factura solo por la duración de la ejecución de la tarea de Spark, sin incluir el inicio ni el cierre, en función de los recursos consumidos. Se factura como unidades de computación de datos (DCU) usadas y otros costes de infraestructura.
Descuentos por compromiso de uso (CUDs) Los descuentos por compromiso de uso de Compute Engine se aplican a todo el uso de recursos. Los descuentos por uso continuado basados en el gasto de BigQuery se aplican a las tareas de Serverless para Apache Spark.
Control de imágenes y del tiempo de ejecución Los usuarios pueden fijar versiones secundarias y terciarias de imágenes de Dataproc. Los usuarios pueden fijar versiones secundarias del tiempo de ejecución de Serverless para Apache Spark. Serverless para Apache Spark gestiona las versiones terciarias.
Gestión de recursos YARN Sin servidor
Compatibilidad con GPU
Sesiones interactivas No
Contenedores personalizados No
Acceso a la VM (SSH) No
Versiones de Java Versiones anteriores compatibles Java 17, 21
Tiempo de inicio 120 s 50s

Cuándo elegir Dataproc

Dataproc es un servicio gestionado que puedes usar para ejecutar Apache Spark y otros frameworks de código abierto para tratar datos. Ofrece un alto grado de control y flexibilidad, por lo que es la opción preferida en los siguientes casos:

  • Migrar cargas de trabajo de Hadoop y Spark: admite la migración de clústeres de Hadoop o Spark on-premise a Google Cloud. Replicar configuraciones con cambios mínimos en el código, sobre todo cuando se usan versiones anteriores de Spark.
  • Personalización y control avanzados: te permite personalizar los tipos de máquinas de clúster, los tamaños de los discos y las configuraciones de red. Este nivel de control es fundamental para ajustar el rendimiento y optimizar el uso de los recursos en trabajos complejos de larga duración.
  • Clústeres persistentes y de larga duración: admite trabajos de Spark continuos y de larga duración, así como clústeres persistentes para varios equipos y proyectos.
  • Ecosistema de código abierto diverso: proporciona un entorno unificado para ejecutar flujos de procesamiento de datos con herramientas del ecosistema de Hadoop, como Hive, Pig o Presto, con tus cargas de trabajo de Spark.
  • Cumplimiento de la seguridad: permite controlar la infraestructura para cumplir estándares de seguridad o de cumplimiento específicos, como proteger la información de identificación personal (IIP) o la información sanitaria protegida (PHI).
  • Flexibilidad de la infraestructura: ofrece VMs de Spot y la posibilidad de reutilizar reservas y capacidad de recursos de Compute Engine para equilibrar el uso de los recursos y facilitar tu estrategia de infraestructura de nube.

Cuándo elegir Serverless para Apache Spark

Serverless para Apache Spark abstrae las complejidades de la gestión de clústeres, lo que te permite centrarte en el código de Spark. Por eso, es una opción excelente para los siguientes casos de tratamiento de datos:

  • Análisis interactivo y ad hoc: para los científicos y analistas de datos que ejecutan consultas interactivas y análisis exploratorios con Spark, el modelo sin servidor ofrece una forma rápida de empezar sin centrarse en la infraestructura.
  • Aplicaciones y flujos de procesamiento basados en Spark: al crear nuevas aplicaciones o flujos de procesamiento de datos en Spark, Serverless para Apache Spark puede acelerar considerablemente el desarrollo, ya que elimina la sobrecarga operativa de la gestión de clústeres.
  • Cargas de trabajo con demanda esporádica o impredecible: en el caso de tareas de Spark intermitentes o tareas con requisitos de recursos fluctuantes, el autoescalado de Serverless para Apache Spark y los precios de pago por uso (se aplican cargos al consumo de recursos de las tareas) pueden reducir los costes de forma significativa.
  • Centrado en la productividad de los desarrolladores: al eliminar la necesidad de aprovisionar y gestionar clústeres, Serverless para Apache Spark acelera la creación de lógica empresarial, proporciona información valiosa más rápido y aumenta la productividad.
  • Operaciones simplificadas y sobrecarga reducida: la gestión de la infraestructura de Serverless para Apache Spark reduce las cargas operativas y los costes.

Resumen

La decisión de usar Dataproc o Serverless para Apache Spark depende de los requisitos de tu carga de trabajo, tus preferencias operativas y el nivel de control que prefieras.

  • Elige Dataproc si necesitas el máximo control, quieres migrar cargas de trabajo de Hadoop o Spark, o necesitas un entorno de clúster persistente, personalizado y compartido.
  • Elige Serverless para Apache Spark por su facilidad de uso, su rentabilidad para cargas de trabajo intermitentes y su capacidad para acelerar el desarrollo de nuevas aplicaciones de Spark al eliminar la sobrecarga de la gestión de la infraestructura.

Después de evaluar los factores que se indican en esta sección, selecciona el servicio más eficiente y rentable para ejecutar Spark y aprovechar todo el potencial de tus datos.