Prácticas recomendadas de Dataproc para la producción

En este documento, se analizan las prácticas recomendadas de Dataproc que pueden ayudarte ejecutar trabajos de procesamiento de datos confiables, eficientes y útiles Clústeres de Dataproc en entornos de producción.

Especifica las versiones de imagen del clúster

Dataproc usa versiones con imágenes para agrupar el sistema operativo, los componentes de macrodatos y conectores de Google Cloud en un paquete que se implementa en un clúster. Si no especificas una versión de la imagen cuando creas un clúster, Dataproc de forma predeterminada a la versión de imagen estable más reciente.

Para entornos de producción, asocia tu clúster a un major.minor Versión con imágenes de Dataproc, 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 a la última versión subsecundaria. (2.0 se resuelve como 2.0.x). Nota: Si necesitas depender de una versión subsecundaria específica para tu clúster, puedes especificarlo: por ejemplo, --image-version=2.0.x. Consulta Cómo funciona el control de versiones para más información.

Versiones con imágenes de vista previa de Dataproc

Las nuevas versiones secundarias de las imágenes de Dataproc están disponibles en una versión preview antes del lanzamiento en el segmento de versiones secundarias de imágenes estándar. Cómo usar una imagen de vista previa para probar y validar tus trabajos frente a una nueva versión de imagen secundaria antes de adoptar la versión de imagen secundaria estándar en producción. Consulta el control de versiones de Dataproc para obtener más información.

Usa imágenes personalizadas cuando sea necesario

Si tienes dependencias que agregar al clúster, como nativas Python, o software de protección antivirus o de endurecimiento de la seguridad, crear una imagen personalizada a partir de la imagen más reciente en tu segmento de versión secundaria de la imagen objetivo. 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 actualizar los requisitos de dependencia, usa la última versión de imagen subsecundaria disponible dentro de la pista de imagen secundaria.

Envía trabajos al servicio de Dataproc

Envía trabajos al servicio de Dataproc con una jobs.submit llamada con el CLI de gcloud o la consola de Google Cloud. Para establecer permisos de trabajo y clúster, otorga roles de Dataproc. Usa roles personalizados para separar el acceso al clúster de los permisos de envío de trabajos.

Beneficios de enviar trabajos al servicio de Dataproc:

  • No se necesita una configuración de red complicada: la API es ampliamente accesible.
  • Permisos y roles de IAM fáciles de administrar
  • Hacer un seguimiento del estado de los trabajos fácilmente (sin metadatos de trabajos de Dataproc que compliquen los resultados)

En producción, ejecuta trabajos que solo dependan del nivel dependencias en una versión de imagen secundaria fija (por ejemplo, --image-version=2.0) Paquete dependencias con trabajos cuando se envían los trabajos. Enviando un uber jar para Spark o MapReduce son una forma común de hacerlo.

  • Ejemplo: Si un archivo jar de trabajo depende de args4j y spark-sql, con args4j específico para el trabajo. y spark-sql una dependencia a nivel de clúster, agrupa args4j en el archivo jar uber del trabajo.

Controla las ubicaciones de las acciones de inicialización

Acciones de inicialización te permiten ejecutar secuencias de comandos o instalar automáticamente cuando crees un clúster de Dataproc (consulta el dataproc-initialization-actions Repositorio de GitHub para acciones comunes de inicialización de Dataproc). Cuando uses acciones de inicialización del clúster en un entorno de inicio, copia las secuencias de comandos de inicialización en Cloud Storage en lugar de obtenerlos de un repositorio público. Esta práctica evita ejecutar de inicio de sesión que están sujetos a modificaciones por otras personas.

Notas de la versión de Dataproc de supervisión

Dataproc lanza con regularidad versiones nuevas de imágenes subsecundarias. Consulta las notas de la versión de Dataproc o suscríbete a ellas. conocer las versiones más recientes de las imágenes de Dataproc y otros anuncios, cambios y correcciones.

Visualiza el bucket de etapa de pruebas para investigar fallas

  1. Observa la capa de recursos bucket de etapa de pruebas para investigar los mensajes de error del clúster y el trabajo. Por lo general, la ubicación de Cloud Storage del bucket de preparación se muestra en los mensajes de error, como se muestra en el texto en negrita del siguiente mensaje de error de muestra:

    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
     

  2. Usa gcloud CLI para ver el contenido del bucket de etapa de pruebas:

    gcloud storage cat gs://STAGING_BUCKET
    
    Resultado de muestra:
    + readonly RANGER_VERSION=1.2.0
    ... Ranger admin password not set. Please use metadata flag - default-password
    

Obtenga asistencia

Google Cloud admite tus cargas de trabajo de OSS de producción y te ayuda a cumplir con tus ANS de la empresa a través de niveles de asistencia. Además, los servicios de consultoría de Google Cloud pueden brindar orientación sobre las prácticas recomendadas para las implementaciones de producción de tu equipo.

Más información