Comparación con Google Cloud Serverless for Apache Spark

Para los Google Cloud clientes que dependen de Apache Spark para ejecutar sus cargas de trabajo de procesamiento y análisis de datos, una decisión clave es elegir entre Dataproc en Compute Engine (al que se hace referencia como "Dataproc" en este documento) y Serverless for Apache Spark. Si bien ambos servicios ofrecen un entorno de Spark administrado, altamente escalable, listo para la producción y seguro que es compatible con OSS y admite por completo los formatos de datos, estas dos plataformas difieren fundamentalmente en la forma en que se administran y facturan las infraestructuras subyacentes.

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

Compara Serverless for Apache Spark con Dataproc

Si deseas aprovisionar y administrar 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 enumeran las diferencias clave entre Dataproc en Compute Engine y Serverless para Apache Spark.

Función Serverless para 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 servidores No
Hora de inicio 50 s 120
Control de la infraestructura No
Administración de recursos Sin servidores YARN
Asistencia de GPU Yes
Sesiones interactivas No
Contenedores personalizados Yes No
Acceso a la VM (SSH) No
Versiones de Java Java 17 y 21 Java 17 y versiones anteriores

Decide cuál es el mejor servicio de Spark

En esta sección, se describen las principales ventajas y los casos de uso principales de cada servicio para ayudarte a seleccionar el mejor servicio para tus cargas de trabajo de Spark.

Descripción general

Dataproc y Serverless for Apache Spark difieren en el grado de control, la administración de la infraestructura y el modo de facturación que ofrece cada uno.

  • Spark administrado por Dataproc: Dataproc ofrece clústeres de Spark como servicio, que ejecutan Spark administrado en tu infraestructura de Compute Engine. Pagas por el tiempo de actividad del clúster.
  • Serverless for Apache Spark: Serverless for Apache Spark ofrece trabajos de Spark como servicio, que ejecutan Spark en una infraestructura Google Cloudcompletamente administrada. Pagas por el tiempo de ejecución del trabajo.

Debido a estas diferencias, cada servicio es más adecuado para los siguientes casos de uso:

Servicio Casos de uso
Dataproc Entornos compartidos de larga duración
Cargas de trabajo que requieren un control detallado de la infraestructura
Migración de entornos heredados de Hadoop y Spark
Serverless para Apache Spark Diferentes entornos de trabajo dedicados
Cargas de trabajo por lotes programadas
Administración de código priorizada por sobre la administración de infraestructura

Diferencias clave

Función Dataproc Serverless para Apache Spark
Modelo de administración Se basa en clústeres. Aprovisionas y administras clústeres. Entorno de ejecución completamente administrado y sin servidores.
Control y personalización Mayor control sobre la configuración del clúster, los tipos de máquinas y el software Capacidad para usar VMs Spot y reutilizar reservas y capacidad de recursos de Compute Engine Adecuado para cargas de trabajo que dependen de formas de VM específicas, como arquitecturas de CPU. Menos control de la infraestructura, con enfoque en enviar código y especificar parámetros de Spark
Casos de uso Clústeres compartidos de ejecución prolongada, migración de cargas de trabajo existentes de Hadoop y Spark con parámetros de configuración personalizados y 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 administración, escalamiento y mantenimiento del clúster Menor sobrecarga: Google Cloud administra la infraestructura, el ajuste de escala 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 for Apache Spark ayuda a proporcionar un rendimiento óptimo.
Modelo de eficiencia Eficiencia obtenida al compartir clústeres entre trabajos y equipos, con un modelo de múltiples usuarios compartido Sin sobrecarga de procesamiento inactivo: Los recursos de procesamiento se asignan solo cuando se ejecuta el trabajo. No hay costos de inicio ni detención. 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 for Apache Spark admite cargas de trabajo regionales sin costo adicional para brindar mayor confiabilidad y disponibilidad.
Costo Se factura el tiempo que se ejecuta el clúster, incluido el inicio y el cierre, según la cantidad de nodos. Incluye la tarifa de licencia de Dataproc y el costo de infraestructura. Se factura solo por la duración de la ejecución del trabajo de Spark, sin incluir el inicio y el cierre, según los recursos consumidos. Se factura como unidades de procesamiento de datos (DCU) usadas y otros costos de infraestructura.
Descuentos por compromiso de uso (CUD) Los CUD de Compute Engine se aplican a todo el uso de recursos. Los CUD basados en la inversión de BigQuery se aplican a los trabajos de Serverless for Apache Spark.
Control de imágenes y del tiempo de ejecución Los usuarios pueden fijar versiones secundarias y secundarias secundarias de imágenes de Dataproc. Los usuarios pueden fijar versiones secundarias del entorno de ejecución de Serverless for Apache Spark. Serverless for Apache Spark administra las versiones secundarias.
Administración de recursos YARN Sin servidores
Compatibilidad con GPU Yes Yes
Sesiones interactivas No
Contenedores personalizados No Yes
Acceso a la VM (SSH) Yes No
Versiones de Java Versiones anteriores compatibles Java 17, 21
Tiempo de inicio 120 50 s

Cuándo elegir Dataproc

Dataproc es un servicio administrado que puedes usar para ejecutar Apache Spark y otros frameworks de procesamiento de datos de código abierto. Ofrece un alto grado de control y flexibilidad, lo que la convierte en la opción preferida en las siguientes situaciones:

  • Migración de cargas de trabajo existentes de Hadoop y Spark: Admite la migración de clústeres locales de Hadoop o Spark a Google Cloud. Replica las configuraciones existentes con cambios mínimos en el código, en especial cuando usas versiones anteriores de Spark.
  • Personalización y control avanzados: Te permite personalizar los tipos de máquinas del clúster, los tamaños de los discos y la configuración de red. Este nivel de control es fundamental para ajustar el rendimiento y optimizar el uso de recursos en trabajos complejos y de larga duración.
  • Clústeres persistentes y de larga duración: Admite trabajos de Spark continuos y de larga duración, y clústeres persistentes para varios equipos y proyectos.
  • Ecosistema diverso de código abierto: Proporciona un entorno unificado para ejecutar canalizaciones de procesamiento de datos que ejecutan 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 con estándares específicos de seguridad o cumplimiento, como la protección de la información de identificación personal (PII) o la información de salud protegida (PHI).
  • Flexibilidad de la infraestructura: Ofrece VMs Spot y la capacidad de reutilizar reservas y capacidad de recursos de Compute Engine para equilibrar el uso de recursos y facilitar tu estrategia de infraestructura de nube.

Cuándo elegir Serverless for Apache Spark

Serverless for Apache Spark elimina las complejidades de la administración de clústeres, lo que te permite enfocarte en el código de Spark. Esto lo convierte en una excelente opción para usar en las siguientes situaciones de procesamiento 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 servidores proporciona una forma rápida de comenzar sin enfocarse en la infraestructura.
  • Aplicaciones y canalizaciones basadas en Spark: Cuando compilas nuevas canalizaciones o aplicaciones de datos en Spark, Serverless for Apache Spark puede acelerar significativamente el desarrollo, ya que elimina la sobrecarga operativa de la administración de clústeres.
  • Cargas de trabajo con demanda esporádica o impredecible: Para los trabajos de Spark intermitentes o los trabajos con requisitos de recursos fluctuantes, el ajuste de escala automático y los precios de pago por uso (se aplican cargos por el consumo de recursos del trabajo) de Serverless for Apache Spark pueden reducir significativamente los costos.
  • Enfoque en la productividad del desarrollador: Al eliminar la necesidad de aprovisionar y administrar clústeres, Serverless para Apache Spark acelera la creación de la lógica empresarial, proporciona estadísticas más rápidas y aumenta la productividad.
  • Operaciones simplificadas y reducción de la sobrecarga: La administración de la infraestructura de Serverless for Apache Spark reduce las cargas y los costos operativos.

En resumen

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

  • Elige Dataproc cuando necesites el máximo control, debas migrar cargas de trabajo de Hadoop o Spark, o requieras un entorno de clúster persistente, personalizado y compartido.
  • Elige Serverless for Apache Spark por su facilidad de uso, su rentabilidad para cargas de trabajo intermitentes y su capacidad de acelerar el desarrollo de nuevas aplicaciones de Spark, ya que elimina la sobrecarga de la administración de la infraestructura.

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