Questa pagina descrive come utilizzare i bucket con spazi dei nomi gerarchici abilitati per i workload Hadoop.
Panoramica
Quando utilizzi un bucket Cloud Storage con spazi dei nomi gerarchici, puoi configurare il connettore Cloud Storage in modo che utilizzi l'operazione di ridenominazione delle cartelle per workload come Hadoop, Spark e Hive.
In un bucket senza spazi dei nomi gerarchici, un'operazione di ridenominazione in Hadoop, Spark e Hive comporta più job di copia ed eliminazione degli oggetti, con un impatto sulle prestazioni e sulla coerenza. La ridenominazione di una cartella utilizzando il connettore Cloud Storage ottimizza le prestazioni e garantisce la coerenza quando si gestiscono cartelle con un numero elevato di oggetti.
Prima di iniziare
Per utilizzare le funzionalità dei bucket con spazi dei nomi gerarchici, utilizza le seguenti versioni del connettore Cloud Storage:
- 2.2.23 o versioni successive (se utilizzi la versione 2.x.x)
- 3.0.1 o versioni successive (se utilizzi la versione 3.x.x)
Le versioni precedenti del connettore (3.0.0 e precedenti alla 2.2.23) presentano limitazioni. Per saperne di più sulle limitazioni, consulta Compatibilità con la versione 3.0.0 del connettore Cloud Storage o versioni precedenti alla 2.2.23.
Abilitare il connettore Cloud Storage su un cluster
Questa sezione descrive come abilitare il connettore Cloud Storage su un cluster Managed Service for Apache Spark e su un cluster Hadoop autogestito.
Dataproc
Puoi utilizzare Google Cloud CLI per creare un cluster Managed Service for Apache Spark e abilitare il connettore Cloud Storage per eseguire le operazioni sulle cartelle.
Crea un cluster Managed Service for Apache Spark utilizzando il seguente comando:
gcloud dataproc clusters create CLUSTER_NAME --properties=core:fs.gs.hierarchical.namespace.folders.enable=true, core:fs.gs.http.read-timeout=30000
Dove:
CLUSTER_NAMEè il nome del cluster. Ad esempio,my-clusterfs.gs.hierarchical.namespace.folders.enableviene utilizzato per abilitare lo spazio dei nomi gerarchico in un bucket.fs.gs.http.read-timeoutè il tempo massimo consentito, in millisecondi, per leggere i dati da una connessione stabilita. Questa è un'impostazione facoltativa.
Hadoop autogestito
Puoi abilitare il connettore Cloud Storage sul tuo cluster Hadoop autogestito per eseguire le operazioni sulle cartelle.
Aggiungi quanto segue al file di configurazione core-site.xml:
<property> <name>fs.gs.hierarchical.namespace.folders.enable</name> <value>true</value> </property> <property> <name>fs.gs.http.read-timeout</name> <value>30000</value> </property>Dove:
fs.gs.hierarchical.namespace.folders.enableviene utilizzato per abilitare lo spazio dei nomi gerarchico in un bucket.fs.gs.http.read-timeoutè il tempo massimo consentito, in millisecondi, per leggere i dati da una connessione stabilita. Questa è un'impostazione facoltativa.
Compatibilità con la versione 3.0.0 del connettore Cloud Storage o versioni precedenti alla 2.2.23
L'utilizzo della versione 3.0.0 del connettore Cloud Storage o di versioni precedenti alla 2.2.23 o la disattivazione delle operazioni sulle cartelle per lo spazio dei nomi gerarchico può comportare le seguenti limitazioni:
Ridenominazione inefficiente delle cartelle: le operazioni di ridenominazione delle cartelle in Hadoop vengono eseguite utilizzando operazioni di copia ed eliminazione a livello di oggetto, che sono più lente e meno efficienti rispetto all'operazione dedicata
rename folder.Accumulo di cartelle vuote: le cartelle non vengono eliminate automaticamente, il che porta all'accumulo di cartelle vuote nel bucket. L'accumulo di cartelle vuote può avere il seguente impatto:
- Aumento dei costi di archiviazione se non vengono eliminate esplicitamente.
Rallentamento delle operazioni di elenco e aumento del rischio di timeout delle operazioni di elenco.
Problemi di compatibilità: la combinazione dell'utilizzo di versioni precedenti e successive del connettore o l'attivazione e la disattivazione delle operazioni sulle cartelle può causare problemi di compatibilità durante la ridenominazione delle cartelle. Considera il seguente scenario che utilizza una combinazione di versioni del connettore:
Utilizza la versione del connettore Cloud Storage precedente alla 2.2.23 per eseguire le seguenti attività:
- Scrivi oggetti nella cartella
foo/. - Rinomina la cartella
foo/inbar/. L'operazione di ridenominazione copia ed elimina gli oggetti infoo/, ma non elimina la cartellafoo/vuota.
- Scrivi oggetti nella cartella
Utilizza la versione 2.2.23 del connettore Cloud Storage con le impostazioni delle operazioni sulle cartelle abilitate per rinominare la cartella
bar/infoo/.
La versione 2.2.23 del connettore, con l'operazione sulle cartelle abilitata, rileva la cartella
foo/esistente, causando il fallimento dell'operazione di ridenominazione. La versione precedente del connettore non ha eliminato la cartellafoo/perché l'operazione sulle cartelle era disabilitata.
Passaggi successivi
Provalo
Se non conosci Google Cloud, crea un account per valutare le prestazioni di Cloud Storage in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
Prova Cloud Storage senza costi