En este documento, se analizan las prácticas recomendadas de Dataproc que pueden ayudarte a ejecutar trabajos de procesamiento de datos confiables, eficientes y útiles en clústeres de Dataproc en entornos de producción.
Especifica versiones de imágenes del clúster
Dataproc usa versiones de imágenes para agrupar el sistema operativo, los componentes de macrodatos y los Google Cloud conectores en un paquete que se implementa en un clúster. Si no especificas una versión de imagen cuando creas un clúster, Dataproc usará de forma predeterminada la versión de imagen estable más reciente.
Para los entornos de producción, asocia tu clúster a una versión de imagen de Dataproc major.minor
específica, 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 depender de 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 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. Usa una imagen de vista previa para probar y validar tus trabajos con una nueva versión secundaria de la imagen antes de adoptar la versión secundaria estándar de la imagen en producción.
Consulta Control de versiones de Dataproc
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 refuerzo de la seguridad, crea una imagen personalizada a partir de la imagen más reciente en el segmento de la versión secundaria de la imagen 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 en el segmento de imágenes secundarias.
Envía trabajos al servicio de Dataproc
Envía trabajos al servicio de Dataproc con una llamada a jobs.submit usando la CLI de gcloud o la consola de Google Cloud . Configura los permisos de trabajos y clústeres otorgando roles de Dataproc. Utiliza roles personalizados para separar el acceso al clúster de los permisos de envío de trabajos.
Estos son los beneficios de enviar trabajos al servicio de Dataproc:
- No se requieren parámetros de configuración de redes complicados: se puede acceder a la API de forma generalizada
- Permisos y roles de IAM fáciles de administrar
- Realiza un seguimiento del estado del trabajo fácilmente, sin metadatos de trabajos de Dataproc que compliquen los resultados.
En producción, ejecuta trabajos que solo dependan de dependencias a nivel del clúster en una versión secundaria fija de la imagen (por ejemplo, --image-version=2.0
). Agrupa las dependencias con los trabajos cuando se envían los trabajos. Una forma común de hacerlo es enviar un uber JAR a Spark o MapReduce.
- Ejemplo: Si un archivo JAR de trabajo depende de
args4j
yspark-sql
, dondeargs4j
es específico del trabajo yspark-sql
es una dependencia a nivel del clúster, incluyeargs4j
en el archivo uber JAR del trabajo.
Controla las ubicaciones de las acciones de inicialización
Las acciones de inicialización te permiten ejecutar automáticamente secuencias de comandos o instalar componentes cuando creas un clúster de Dataproc (consulta el repositorio de GitHub dataproc-initialization-actions para ver las acciones de inicialización comunes de Dataproc). Cuando uses acciones de inicialización del clúster 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 ejecutar secuencias de comandos de inicialización que otras personas pueden modificar.
Supervisa las notas de la versión de Dataproc
Dataproc lanza nuevas versiones secundarias de imágenes con regularidad. Consulta las notas de la versión de Dataproc o suscríbete a ellas para conocer los lanzamientos de las versiones de imagen de Dataproc más recientes y otros anuncios, cambios y correcciones.
Visualiza el bucket de etapa de pruebas para investigar las fallas
Consulta el bucket de etapa de pruebas de tu clúster para investigar los mensajes de error del clúster y del trabajo. Por lo general, la ubicación del bucket de Cloud Storage de la 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
Obtenga asistencia
Google Cloud admite tus cargas de trabajo de OSS de producción y te ayuda a cumplir con los ANS de tu empresa a través de niveles de asistencia. Además,los Google Cloud servicios de consultoría pueden brindar 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 del blog Guía de prácticas recomendadas de Dataproc.
Mira Democratizing Dataproc en YouTube.