En este documento, se analizan las prácticas recomendadas de Dataproc que pueden ayudarte a ejecutar trabajos de procesamiento de datos confiables, eficientes y reveladores en clústeres de Dataproc en entornos de producción.
Especifica las versiones de imágenes de 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 usa de forma predeterminada la versión de imagen estable más reciente.
Para los entornos de producción, asocia tu clúster con una versión de imagen de Dataproc específica
major.minor, como
se muestra en el siguiente comando de la CLI de gcloud.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc resuelve la versión major.minor a 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 de imágenes de vista previa de Dataproc
Las versiones secundarias nuevas de las imágenes de Dataproc
están disponibles en una preview versión antes del lanzamiento
en el seguimiento de versiones de imágenes secundarias estándar. Usa una imagen de vista previa
para probar y validar tus trabajos en una versión de imagen secundaria nueva
antes de adoptar la versión de imagen secundaria estándar 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 de refuerzo de seguridad, crea una imagen personalizada a partir de la imagen más reciente en tu seguimiento de versiones de imágenes secundarias 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 del seguimiento de imágenes secundarias.
Envía trabajos al servicio de Dataproc
Envía trabajos al servicio de Dataproc con una jobs.submit mediante la CLI de gcloud o la Google Cloud consola. Configura los permisos de trabajo y clúster otorgando funciones de Dataproc. Usa funciones personalizadas 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 requieren parámetros de configuración de red complicados: se puede acceder a la API de forma generalizada.
- Es fácil administrar los permisos y las funciones de IAM.
- Realiza un seguimiento del estado del trabajo con facilidad: no hay metadatos de trabajo 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 de imagen secundaria fija (por ejemplo, --image-version=2.0). Agrupa las dependencias
con los trabajos cuando se envían. Enviar
un archivo 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 uber jar 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 automáticamente 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 de 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 la ejecución de secuencias de comandos de inicialización que están sujetas a modificaciones por parte de otros usuarios.
Supervisa las notas de la versión de Dataproc
Dataproc lanza versiones de imágenes secundarias nuevas con regularidad. Consulta o suscríbete a las notas de la versión de Dataproc para conocer los últimos lanzamientos de versiones de imágenes de Dataproc y otros anuncios, cambios y correcciones.
Consulta el bucket de etapa de pruebas para investigar 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 de Cloud Storage del bucket de etapa de pruebas se muestra en los mensajes de error, como se muestra 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 la CLI de gcloud 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 tus ANS empresariales a través de niveles de asistencia. Además, Google Cloud los Servicios de consultoría pueden proporcionar orientación sobre las prácticas recomendadas para las implementaciones de producción de tu equipo.
Más información
Lee la guía de prácticas recomendadas de Dataproc del Google Cloud blog .
Mira Democratización de Dataproc en YouTube.