Managed Service para Apache Spark ahora incluye las opciones de productos anteriores "Managed Service para Apache Spark en Compute Engine" (implementación de clústeres) y "Managed Service para Apache Spark" (implementación sin servidores).
Si bien las implementaciones sin servidores y de clúster proporcionan un entorno de Spark administrado, altamente escalable, listo para producción y seguro que es compatible con OSS y con compatibilidad total con los formatos de datos, difieren en la forma en que administran la infraestructura subyacente y facturan los recursos. Revisa las siguientes funciones y casos de uso para elegir una solución de Spark.
Compara las implementaciones de Managed Service para Apache Spark
En la siguiente tabla, se enumeran las diferencias clave entre las implementaciones de clústeres y sin servidores de Managed Service para Apache Spark.
| Implementación | Sin servidores | Clúster |
|---|---|---|
| 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 | Sí | No |
| Tiempo de inicio | 50 s | 120 s |
| Control de la infraestructura | No | Sí |
| Administración de recursos | Sin servidores | YARN |
| Asistencia de GPU | Yes | Sí |
| Sesiones interactivas | Sí | No |
| Contenedores personalizados | Yes | No |
| Acceso a la VM (SSH) | No | Sí |
| Versiones de Java | Java 17, 21 | Java 17 y versiones anteriores |
Decide cuál es la mejor implementación de Managed Service para Apache Spark
En esta sección, se describen las fortalezas principales de Managed Service para Apache Spark y los casos de uso principales para ayudarte a seleccionar la mejor implementación de Managed Service para Apache Spark (clúster o sin servidores) para tus cargas de trabajo de Spark.
Descripción general
Las implementaciones de Managed Service para Apache Spark difieren en el grado de control, la administración de la infraestructura y el modo de facturación que ofrece cada una.
- Implementación sin servidores: Managed Service para Apache Spark ofrece trabajos de Spark como servicio, lo que permite ejecutar Spark en una infraestructura de Google Cloud completamente administrada. Pagas por el tiempo de ejecución del trabajo.
- Implementación de clústeres: Ofrece clústeres de Spark como servicio, que ejecutan Managed Spark en tu infraestructura de Compute Engine. Pagas por el tiempo de actividad del clúster.
Debido a estas diferencias, cada implementación de Managed Service para Apache Spark es más adecuada en los siguientes casos de uso:
| Implementación | Casos de uso |
|---|---|
| sin servidores | Diferentes entornos de trabajo dedicados Cargas de trabajo por lotes programadas La administración de código se prioriza por sobre la administración de infraestructura |
| clúster | 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 |
Diferencias clave
| Función | implementación sin servidores | implementación de clústeres |
|---|---|---|
| Modelo de administración | Es un entorno de ejecución completamente administrado y sin servidores. | Basado en clústeres. Aprovisionas y administras clústeres. |
| Control y personalización | Menos control de la infraestructura, con un enfoque en el envío de código y la especificación de parámetros de Spark. | 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 las arquitecturas de la CPU. |
| Casos de uso | Consultas ad hoc, análisis interactivos, nuevas canalizaciones de Spark y cargas de trabajo con necesidades de recursos impredecibles. | Clústeres compartidos de larga duración, migración de cargas de trabajo existentes de Hadoop y Spark con parámetros de configuración personalizados, cargas de trabajo que requieren una personalización profunda. |
| Sobrecarga operativa | Menos sobrecarga. Google Cloud administra la infraestructura, el escalamiento y el aprovisionamiento, lo que habilita un modelo de NoOps. Gemini Cloud Assist facilita la solución de problemas, mientras que el ajuste automático sin servidores ayuda a proporcionar un rendimiento óptimo. |
Mayor sobrecarga que requiere administración, escalamiento y mantenimiento del clúster. |
| Modelo de eficiencia | No hay sobrecarga de procesamiento inactivo: la asignación de recursos de procesamiento solo se realiza cuando el trabajo se está ejecutando. No hay costos de inicio ni de detención. Se admiten sesiones interactivas compartidas para mejorar la eficiencia. | Eficiencia obtenida al compartir clústeres entre trabajos y equipos, con un modelo de múltiples usuarios compartido |
| Control de la ubicación | Managed Service para Apache Spark admite cargas de trabajo regionales sin costo adicional para proporcionar confiabilidad y disponibilidad adicionales. | Los clústeres son zonales. La zona se puede seleccionar automáticamente durante la creación del clúster. |
| Costo | Se factura solo por la duración de la ejecución del trabajo de Spark, sin incluir el inicio y la finalización, según los recursos consumidos. Se factura como unidades de procesamiento de datos (DCU) usadas y otros costos de infraestructura. | Se factura por el tiempo que el clúster está en ejecución, incluidos el inicio y la eliminación, según la cantidad de nodos. Incluye la tarifa de licencia de Managed Service para Apache Spark y el costo de la infraestructura. |
| Descuentos por compromiso de uso (CUD) | Los CUD basados en la inversión de BigQuery se aplican a los trabajos de Managed Service para Apache Spark. | Los CUD de Compute Engine se aplican a todo el uso de recursos. |
| Control de imágenes y entornos de ejecución | Los usuarios pueden fijar versiones secundarias del entorno de ejecución de Managed Service para Apache Spark. Las versiones inferiores a las secundarias las administra Managed Service para Apache Spark. | Los usuarios pueden fijar versiones de imágenes de Managed Service para Apache Spark secundarias y de nivel inferior. |
| Administración de recursos | sin servidores | YARN |
| Compatibilidad con GPU | Yes | Yes |
| Sesiones interactivas | Sí | No |
| Contenedores personalizados | Yes | No |
| Acceso a la VM (SSH) | No | Yes |
| Versiones de Java | Java 17, 21 |
Versiones anteriores compatibles |
| Tiempo de inicio | 50 s | 120 s |
Cuándo elegir la implementación sin servidores
La implementación sin servidores de Managed Service para Apache Spark abstrae 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 ad hoc e interactivo: Para los científicos de datos y analistas 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 se crean nuevas canalizaciones de datos o aplicaciones en Spark, Managed Service para 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 con requisitos de recursos fluctuantes, el ajuste de escala automático sin servidores y los precios de pago por uso (se aplican cargos al consumo de recursos del trabajo) pueden reducir los costos de forma significativa.
- Enfoque en la productividad de los desarrolladores: Al eliminar la necesidad de aprovisionar y administrar clústeres, Managed Service para Apache Spark acelera la creación de lógica empresarial, proporciona estadísticas más rápido y aumenta la productividad.
- Operaciones simplificadas y reducción de la sobrecarga: La administración de la infraestructura de Managed Service para Apache Spark reduce las cargas y los costos operativos.
Cuándo elegir la implementación de clústeres
Puedes usar la implementación de clústeres de Managed Service para Apache Spark 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 lo 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. Replicar los parámetros de configuración existentes con cambios mínimos en el código, en especial cuando se usan versiones anteriores de Spark
- Personalización y control profundos: Te permite personalizar los tipos de máquinas, los tamaños de los discos y la configuración de red de los clústeres. 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 las reservas y la capacidad de recursos de Compute Engine para equilibrar el uso de recursos y facilitar tu estrategia de infraestructura de nube.
En resumen
La decisión de usar el clúster de Managed Service para Apache Spark o la implementación sin servidores depende de los requisitos de tu carga de trabajo, tus preferencias operativas y el nivel de control que prefieras.
- Elige Managed Service para Apache Spark sin servidores por su facilidad de uso, 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 infraestructura.
- Elige clústeres de Managed Service para Apache Spark cuando necesites el máximo control, migrar cargas de trabajo de Hadoop o Spark, o un entorno de clúster compartido, personalizado y persistente.
Después de evaluar los factores que se indican en esta sección, selecciona la implementación de Managed Service para Apache Spark más eficiente y rentable para ejecutar Spark y aprovechar todo el potencial de tus datos.