En este documento, se analizan las prácticas recomendadas de Managed Service para Apache Spark que pueden ayudarte a ejecutar trabajos de procesamiento de datos confiables, eficientes y reveladores en clústeres de Managed Service para Apache Spark en entornos de producción.
Especifica las versiones de imágenes del clúster
Managed Service para Apache Spark usa versiones de imágenes para empaquetar el sistema operativo, los componentes de macrodatos y los conectores de Google Cloud en un paquete que se implementa en un clúster. Si no especificas una versión de imagen cuando creas un clúster, Managed Service para Apache Spark usa de forma predeterminada la versión de imagen estable más reciente.
En el caso de los entornos de producción, asocia tu clúster con una versión específica
de la imagen de Managed Service para Apache Spark de major.minor, como
se muestra en el siguiente comando de gcloud CLI.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc resuelve la versión major.minor en la versión secundaria más reciente
(2.0 se resuelve en 2.0.x). Nota: Si necesitas confiar en una versión secundaria específica para tu clúster,
puedes especificarla, por ejemplo, --image-version=2.0.x. Consulta
Cómo funciona el control de versiones para
obtener más información.
Versiones preliminares de imágenes de Managed Service para Apache Spark
Las nuevas versiones secundarias de las imágenes de Managed Service para Apache Spark
están disponibles en una versión preview antes de su lanzamiento
en la pista de versiones secundarias estándar. Usa una imagen de vista previa
para probar y validar tus trabajos con una versión de imagen secundaria nueva
antes de adoptar la versión de imagen secundaria estándar en producción.
Consulta el control de versiones de Managed Service para Apache Spark
para obtener más información.
Usa imágenes personalizadas cuando sea necesario
Si tienes dependencias para agregar al clúster, como bibliotecas nativas de Python, o software de protección contra virus o de endurecimiento de la seguridad, crea una imagen personalizada a partir de la imagen más reciente en tu segmento de versión de imagen secundaria de destino. Esta práctica te permite cumplir con los requisitos de dependencia cuando creas clústeres con tu imagen personalizada. Cuando vuelvas a compilar tu imagen personalizada para actualizar los requisitos de dependencia, usa la versión de imagen secundaria más reciente disponible dentro de la pista de imágenes secundarias.
Envía trabajos a Managed Service para Apache Spark
Envía trabajos a Managed Service para Apache Spark con una llamada jobs.submit con la gcloud CLI o la consola de Google Cloud . Establece permisos de trabajos y clústeres otorgando roles de Managed Service para Apache Spark. Usa roles personalizados para separar el acceso al clúster de los permisos de envío de trabajos.
Estos son los beneficios de enviar trabajos a Managed Service para Apache Spark:
- No se requieren parámetros de configuración de red complicados, ya que la API es ampliamente accesible.
- Permisos y roles de IAM fáciles de administrar
- Realiza un seguimiento del estado de los trabajos con facilidad, sin metadatos de trabajos de Managed Service para Apache Spark que compliquen los resultados.
En producción, ejecuta trabajos que solo dependan de las dependencias a nivel del clúster en una versión de imagen secundaria fija (por ejemplo, --image-version=2.0). Agrupa las dependencias con los trabajos cuando se envíen. Enviar un uber jar a Spark o MapReduce es una forma común de hacerlo.
- Ejemplo: Si un archivo JAR de trabajo depende de
args4jyspark-sql, conargs4jespecífico para el trabajo yspark-sqluna dependencia a nivel del clúster, agrupaargs4jen el archivo JAR uber del trabajo.
Controla las ubicaciones de las acciones de inicialización
Las acciones de inicialización te permiten ejecutar secuencias de comandos o instalar componentes de forma automática cuando creas un clúster de Managed Service para Apache Spark (consulta el repositorio de GitHub dataproc-initialization-actions para conocer las acciones de inicialización comunes de Managed Service para Apache Spark). Cuando uses acciones de inicialización de clústeres en un entorno de producción, copia las secuencias de comandos de inicialización en Cloud Storage en lugar de obtenerlas de un repositorio público. Esta práctica evita que se ejecuten secuencias de comandos de inicialización que otras personas puedan modificar.
Supervisa las notas de la versión de Managed Service para Apache Spark
Managed Service para Apache Spark lanza con frecuencia nuevas versiones de imágenes secundarias. Consulta o suscríbete a las notas de la versión de Managed Service para Apache Spark para conocer las versiones más recientes de las imágenes de Managed Service para Apache Spark y otros anuncios, cambios y correcciones.
Visualiza el bucket de etapa de pruebas para investigar las fallas
Consulta el bucket de etapa de pruebas del clúster para investigar los mensajes de error del clúster y del trabajo. Por lo general, la ubicación de Cloud Storage del bucket de etapa de pruebas se muestra en los mensajes de error, como se indica en el texto en negrita del siguiente mensaje de error de ejemplo:
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
Usa gcloud CLI para ver el contenido del bucket de etapa de pruebas:
Resultado de ejemplo:gcloud storage cat gs://STAGING_BUCKET
+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
Obtén asistencia
Google Cloud admite tus cargas de trabajo de OSS de producción y te ayuda a cumplir con tus ANS empresariales a través de niveles de asistencia. Además, los servicios de consultoría de Google Cloudpueden proporcionar orientación sobre las prácticas recomendadas para las implementaciones de producción de tu equipo.
Más información
Lee la Google Cloud entrada de blog Guía de prácticas recomendadas para Managed Service para Apache Spark.
Mira Democratizing Managed Service para Apache Spark en YouTube.