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, Managed Service para Apache Spark también crea una etapa de pruebas de Cloud Storage y un bucket temporal de Cloud Storage en tu proyecto o vuelve a usar los buckets temporales y de etapa de pruebas existentes creados por Managed Service para Apache Spark de solicitudes anteriores de creación de clústeres.
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 de la recopilación de datos de diagnóstico de instantáneas.
Bucket temporal: se usa para almacenar datos de trabajos y clústeres efímeros, como los archivos de historial de Spark y MapReduce. También almacena datos de diagnóstico de puntos de control recopilados durante el ciclo de vida de un clúster.
Si no especificas un bucket de etapa de pruebas o temporal cuando creas un clúster, Managed Service para Apache Spark establece una ubicación de Cloud Storage en EE.UU., ASIA o la UE para los buckets de etapa de pruebas y temporales de tu clúster según la zona de Compute Engine en la que se implementa tu clúster y, luego, crea y administra estos buckets a nivel de proyecto y por ubicación. Los buckets temporales y de etapa de pruebas creados por Managed Service para Apache Spark se comparten entre los clústeres de la misma región y se crean con una duración de retención de eliminación definitiva de Cloud Storage establecida en 0 segundos. Si especificas tus propios buckets de temporales y de etapa de pruebas, considera ajustar la retención de eliminación no definitiva para reducir los cargos de almacenamiento que generan los objetos borrados de forma no definitiva.
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 necesarios para varios clústeres, no tiene un TTL. Sin embargo, puedes aplicar una regla de ciclo de vida a tus archivos de dependencia (archivos con la extensión de nombre de archivo ".jar" ubicados en la carpeta del bucket de etapa de pruebas) para programar la eliminación de tus archivos de dependencia cuando tus clústeres ya no los necesiten.
Crea tus propios buckets de etapa de pruebas y temporales
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 Managed Service para Apache Spark usará como bucket temporal y de etapa de pruebas del clúster.
Consola deGoogle Cloud
Para especificar o seleccionar el bucket de etapa de pruebas del clúster, haz lo siguiente:
- Abre la página Crear clúster.
- Haz clic en Configuración adicional para expandir esa sección.
- Edita Personalización y otros.
- En el panel que se abre, en la sección Cloud Storage staging bucket, especifica un bucket.
Nota: No se admite la especificación de un bucket temporal con la consola de Google Cloud .
gcloud CLI
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.
Managed Service para Apache Spark usa una estructura de carpetas definida para los buckets de Cloud Storage adjuntos a los clústeres y también admite la conexión de más de un clúster a un bucket. La estructura de carpetas que se usa para guardar el resultado del controlador del trabajo en Cloud Storage es la siguiente:
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 laGoogle Cloud consola para enumerar el nombre de los buckets temporales y de etapa de pruebas de un clúster.
Consola deGoogle Cloud
- Puedes ver los detalles del clúster, incluido el nombre del bucket de staging del clúster, en la página Clústeres de 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-".
gcloud CLI
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 ...