Conceptos clave de Managed Service para Apache Spark

En este documento, se explican los conceptos clave, los componentes fundamentales, las funciones principales y los beneficios de Managed Service para Apache Spark. Comprender estos conceptos básicos te ayudará a usar de manera eficaz Managed Service para Apache Spark en tus tareas de procesamiento de datos.

El modelo sin servidores

Managed Service para Apache Spark sin servidores es el modelo moderno de Managed Service para Apache Spark con ejecución automatizada. Te permite ejecutar trabajos sin aprovisionar, administrar ni escalar la infraestructura subyacente: Managed Service para Apache Spark se encarga de los detalles por ti.

  • Lotes: Un lote (también llamado carga de trabajo por lotes) es el equivalente sin servidores de un trabajo de Managed Service para Apache Spark. Envías tu código, como un trabajo de Spark, al servicio. Managed Service para Apache Spark aprovisiona los recursos necesarios a pedido, ejecuta el trabajo y, luego, los desactiva. No necesitas crear ni administrar recursos de clústeres o trabajos. El servicio se encarga de todo.
  • Sesiones interactivas: Las sesiones interactivas proporcionan un entorno activo y a pedido para el análisis exploratorio de datos, por lo general, dentro de un notebook de Jupyter. Las sesiones interactivas proporcionan la comodidad de un espacio de trabajo temporal y sin servidores que puedes usar para ejecutar consultas y desarrollar código sin tener que aprovisionar ni administrar recursos de clústeres y notebooks.
  • Plantillas de sesión: Una plantilla de sesión es una configuración reutilizable que puedes usar para definir sesiones interactivas. La plantilla contiene parámetros de configuración de la sesión, como las propiedades de Spark y las dependencias de la biblioteca. Usas la plantilla para crear entornos de sesión interactivos para el desarrollo, por lo general, dentro de un notebook de Jupyter.

El modelo basado en clústeres

Managed Service para Apache Spark en clústeres es la forma estándar y centrada en la infraestructura de usar Managed Service para Apache Spark. Te brinda control total sobre un conjunto dedicado de máquinas virtuales para tus tareas de procesamiento de datos.

  • Clústeres: Un clúster es tu motor personal de procesamiento de datos, compuesto por Google Cloud máquinas virtuales. Creas un clúster para ejecutar frameworks de código abierto, como Apache Spark y Apache Hadoop. Tienes control total sobre el tamaño, los tipos de máquinas y la configuración del clúster.
  • Trabajos: Un trabajo es una tarea específica, como una secuencia de comandos de PySpark o una consulta de Hadoop. En lugar de ejecutar un trabajo directamente en un clúster, lo envías a Managed Service para Apache Spark, que administra la ejecución del trabajo por ti. Puedes enviar varios trabajos al clúster.
  • Plantillas de flujos de trabajo: Una plantilla de flujo de trabajo es una definición reutilizable que coordina una serie de trabajos (un flujo de trabajo). Puede definir dependencias entre trabajos, por ejemplo, para ejecutar un trabajo de aprendizaje automático solo después de que se complete correctamente un trabajo de limpieza de datos. El flujo de trabajo basado en plantillas se puede ejecutar en un clúster existente o en un clúster temporal (efímero) que se crea para ejecutar el flujo de trabajo y, luego, se borra después de que se completa el flujo de trabajo. Puedes usar la plantilla para ejecutar el flujo de trabajo definido cuando sea necesario.
  • Políticas de ajuste de escala automático: Una política de ajuste de escala automático contiene reglas que defines para agregar o quitar máquinas de trabajo de un clúster según la carga de trabajo del clúster, con el objetivo de optimizar de forma dinámica el costo y el rendimiento del clúster.

Personalización del entorno

Managed Service para Apache Spark en clústeres ofrece funciones y componentes de clústeres que puedes usar para personalizar el entorno de tu aplicación.

Entornos de desarrollo y notebooks

Los notebooks y los IDE sin servidores de Managed Service para Apache Spark se vinculan a entornos de desarrollo integrados en los que puedes escribir y ejecutar tu código.

  • BigQuery Studio y Workbench: Son entornos unificados de notebook y análisis. Te permiten escribir código (por ejemplo, en un notebook de Jupyter) y usar un clúster de Managed Service para Apache Spark o una sesión sin servidores como el potente motor de backend para ejecutar tu código en grandes conjuntos de datos.
  • Complemento de JupyterLab de Managed Service para Apache Spark: Este JupyterLabextension oficial actúa como panel de control para Managed Service para Apache Spark sin servidores dentro de tu entorno de notebook. Simplifica tu flujo de trabajo, ya que te permite explorar, crear y administrar clústeres, y enviar trabajos sin tener que salir de la interfaz de Jupyter.
  • Conector de Python de Managed Service para Apache Spark Connect: Esta biblioteca de Python optimiza el proceso de uso de Spark Connect con Managed Service para Apache Spark. Controla la autenticación y la configuración de extremos, lo que simplifica mucho la conexión de tu entorno local de Python, como un notebook o un IDE, a un clúster remoto de Managed Service para Apache Spark para el desarrollo interactivo.

El modelo de contenedor

Managed Service para Apache Spark en Google Kubernetes Engine implementa clústeres virtuales de Managed Service para Apache Spark en un clúster de GKE. A diferencia de los clústeres de Managed Service para Apache Spark, los clústeres virtuales de Managed Service para Apache Spark no aprovisionan VMs de trabajador y principal separadas. En su lugar, aprovisionan grupos de nodos dentro de un clúster de GKE. Los trabajos de Managed Service para Apache Spark en GKE se ejecutan como pods en estos grupos de nodos. Managed Service para Apache Spark en GKE administra los grupos de nodos y la programación de pods en los grupos de nodos.