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 aspectos básicos te ayuda a usar Managed Service para Apache Spark de manera eficaz 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 de 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 elimina. No creas ni administras recursos de clústeres o trabajos, ya que el servicio hace el trabajo por ti.
Sesiones interactivas: Las sesiones interactivas proporcionan un entorno en vivo y on demand 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 y administrar recursos de clústeres y notebooks.
Perfiles de entorno de ejecución (plantillas de sesión): Un perfil de entorno de ejecución (llamado plantilla de sesión en Google Cloud CLI y la API de Dataproc) es una configuración reutilizable que puedes usar para definir sesiones interactivas. El perfil contiene la configuración de la sesión, como el nivel de procesamiento, la configuración del ejecutor, las propiedades de Spark y las dependencias de la biblioteca. Usa el perfil de entorno de ejecución para crear entornos de sesión interactiva 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 de procesamiento de datos personal, compuesto por máquinas virtuales de Google Cloud . 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 flujo de trabajo: Una plantilla de flujo de trabajo es una definición reutilizable que organiza 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 con plantilla 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 trabajador 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úster 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 análisis y notebooks. 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 conjuntos de datos grandes.
- Complemento de JupyterLab de Managed Service para Apache Spark: Este
JupyterLabextensionoficial actúa como un 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. - Google Cloud Data Agent Kit: El Data Agent Kit permite que los científicos de datos, ingenieros y desarrolladores administren todo el ciclo de vida de sus cargas de trabajo de datos dentro de su IDE. Data Agent Kit proporciona compatibilidad con Managed Service para Apache Spark, lo que te permite desarrollar código, crear sesiones interactivas y compilar canalizaciones directamente desde VS Code o una CLI de agentes compatible.
- 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 los extremos, lo que facilita 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 trabajadores y principales independientes. 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 ellos.