Etapa de pruebas de Dataproc y depósitos temporales

Cuando creas un clúster, HDFS se usa como el sistema de archivos predeterminado. Puedes anular este comportamiento; para ello, configura defaultFS como un bucket de Cloud Storage. De forma predeterminada, Dataproc también crea una etapa de pruebas de Cloud Storage y un bucket temporal de Cloud Storage en tu proyecto o reutiliza la etapa de pruebas existente creada por Dataproc y los buckets temporales de solicitudes de creación de clústeres anteriores.

  • Bucket de staging: se usa para almacenar en etapa intermedia las dependencias de trabajos de clústeres, los resultados del controlador de trabajos y los archivos de configuración de clústeres. También recibe resultados del comando gcloud dataproc clusters diagnose de gcloud CLI.

  • Bucket temporal: se usa para almacenar datos de trabajos y clústeres efímeros, como los archivos de historial de Spark y MapReduce.

Si no especificas un bucket temporal o de etapa de pruebas cuando creas un clúster, Dataproc configura una ubicación de Cloud Storage en EE.UU., ASIA o UE para la etapa de pruebas y los buckets temporales de tu clúster según la zona de Compute Engine en la que se implementa el clúster y, luego, crea y administra estos buckets por ubicación a nivel de proyecto. Los buckets temporales y la etapa de pruebas creados por Dataproc se comparten entre clústeres de la misma región.

El bucket temporal contiene datos efímeros y tiene un TTL de 90 días. El bucket de etapa de pruebas, que puede contener datos de configuración y archivos de dependencia que necesitan varios clústeres, no tiene un TTL. Sin embargo, puedes aplicar una regla de ciclo de vida a tus archivos de dependencia (archivos con una extensión de nombre de archivo “.jar” ubicada en la carpeta del bucket de etapa de pruebas) para programar la eliminación de los archivos de dependencia cuando tus clústeres ya no los necesiten.

Crea tus propios buckets temporales y de etapa de pruebas

En lugar de depender de la creación de un bucket temporal y de staging predeterminado, puedes especificar los buckets de Cloud Storage existentes que Dataproc usará como bucket temporal y de etapa de pruebas del clúster.

Comando de gcloud

Ejecuta el comando gcloud dataproc clusters create con las marcas --bucket o --temp-bucket de forma local en una ventana de la terminal o en Cloud Shell para especificar la etapa de pruebas o el bucket temporal de tu clúster.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --bucket=bucket-name \
    --temp-bucket=bucket-name \
    other args ...

API de REST

Usa los campos ClusterConfig.configBucket y ClusterConfig.tempBucket en una solicitud clusters.create para especificar los depósitos temporales y de etapa de pruebas de tu clúster.

Console

En la consola de Google Cloud, abre la página Crear un clúster de Dataproc. Selecciona el panel Personalizar clúster y, luego, usa el campo Almacenamiento de archivos para especificar o seleccionar el bucket de etapa de pruebas del clúster.

Nota: Por el momento, no se admite especificar un bucket temporal con la consola de Google Cloud.

Dataproc usa una estructura de carpetas definida para los depósitos de Cloud Storage adjuntos a los clústeres. Dataproc también admite adjuntar más de un clúster a un bucket de Cloud Storage. Se usa la siguiente estructura de carpetas para guardar el resultado del controlador del trabajo en Cloud Storage:

cloud-storage-bucket-name
  - google-cloud-dataproc-metainfo
    - list of cluster IDs
        - list of job IDs
          - list of output logs for a job

Puedes usar la herramienta de línea de comandos de gcloud, la API de Dataproc o la consola de Google Cloud para enumerar el nombre de la etapa de pruebas y los buckets temporales de un clúster.

Console

  • \Ver los detalles del clúster, que incluyen como el nombre del bucket de etapa de pruebas del clúster, en la página Clústeres de Dataproc en la consola de Google Cloud.
  • En la página Navegador de Cloud Storage de la consola de Google Cloud, filtra los resultados que contengan “dataproc-temp-”.

Comando de gcloud

Ejecuta el comando gcloud dataproc clusters describe de forma local en una ventana de la terminal o en Cloud Shell. Los depósitos de estapas de pruebas y temporales asociados con tu clúster se enumeran en el resultado.

gcloud dataproc clusters describe cluster-name \
    --region=region \
...
clusterName: cluster-name
clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec ...
config:
    configBucket: dataproc-...
    ...
    tempBucket: dataproc-temp...

API de REST

Llama a clusters.get para ver una lista de los detalles del clúster, incluido el nombre de los buckets temporales y de etapa de pruebas del clúster.

{
 "projectId": "vigilant-sunup-163401",
 "clusterName": "cluster-name",
 "config": {
  "configBucket": "dataproc-...",
...
  "tempBucket": "dataproc-temp-...",
}

defaultFS

Puedes configurar core:fs.defaultFS en una ubicación de bucket en Cloud Storage (gs://defaultFS-bucket-name) para configurar Cloud Storage como el sistema de archivos predeterminado. Esto también establece core:fs.gs.reported.permissions, el permiso informado que muestra el conector de Cloud Storage para todos los archivos, en 777.

Si Cloud Storage no está configurado como el sistema de archivos predeterminado, se usará HDFS y la propiedad core:fs.gs.reported.permissions mostrará 700, el valor predeterminado.

gcloud dataproc clusters create cluster-name \
    --properties=core:fs.defaultFS=gs://defaultFS-bucket-name \
    --region=region \
    --bucket=staging-bucket-name \
    --temp-bucket=temp-bucket-name \
    other args ...