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 la 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 versión más reciente de la subversión (2.0
se resuelve a 2.0.x
). Nota: Si necesitas usar una subversión 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
Versiones secundarias nuevas de Dataproc
las imágenes están disponibles en una versión preview
antes del lanzamiento
en el segmento de versión de imagen secundaria estándar. Usa una imagen preliminar para probar y validar tus trabajos en 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 que agregar al clúster, como nativas Python, como endurecimiento de la seguridad o software de protección antivirus, 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 disponible de la imagen subsecundaria dentro de la pista de imágenes secundaria.
Envía trabajos al servicio de Dataproc
Envía trabajos al servicio de Dataproc con una llamada jobs.submit con gcloud CLI o la consola de Google Cloud. Para configurar los 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 requiere una configuración de red complicada, ya que la API es de fácil acceso.
- Permisos y roles de IAM fáciles de administrar
- Haz un seguimiento del estado del trabajo fácilmente, sin metadatos de trabajo de Dataproc para complicar 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. 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
yspark-sql
, conargs4j
específico para el trabajo. yspark-sql
una dependencia a nivel de clúster, agrupaargs4j
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 secuencias de comandos de inicialización que están sujetas a modificaciones por parte de terceros.
Supervisa las notas de la versión de Dataproc
Dataproc lanza versiones secundarias nuevas de imágenes con regularidad. 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 otras anuncios, cambios y correcciones.
Cómo ver el bucket de etapa para investigar las fallas
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 del bucket de etapa de pruebas de Cloud Storage se muestra en mensajes de error, como se muestra en el texto en negrita en el siguiente ejemplo de error mensaje:
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 muestra: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 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
Lee la guía de prácticas recomendadas de Dataproc del blog de Google Cloud.
Consulta Democratizing Dataproc en YouTube.