Utilizzare i bucket con spazi dei nomi gerarchici abilitati per i carichi di lavoro Hadoop

Questa pagina descrive come utilizzare i bucket abilitati per lo spazio dei nomi gerarchico per i workload Hadoop.

Panoramica

Quando utilizzi un bucket Cloud Storage con lo spazio dei nomi gerarchico, puoi configurare il connettore Cloud Storage in modo che utilizzi l'operazione di rinomina della cartella per workload come Hadoop, Spark, Hive.

In un bucket senza namespace gerarchico, un'operazione di ridenominazione in Hadoop, Spark e Hive comporta più job di copia ed eliminazione di oggetti, con un impatto su prestazioni e coerenza. La ridenominazione di una cartella utilizzando il connettore Cloud Storage ottimizza le prestazioni e garantisce la coerenza durante la gestione di cartelle con un numero elevato di oggetti.

Prima di iniziare

Per utilizzare le funzionalità dei bucket di spazi di 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 delle limitazioni. Per saperne di più sulle limitazioni, consulta Compatibilità con il connettore Cloud Storage versione 3.0.0 o versioni precedenti alla 2.2.23.

Abilita il connettore Cloud Storage su un cluster

Questa sezione descrive come attivare il connettore Cloud Storage su un cluster Managed Service for Apache Spark e su un cluster Hadoop autogestito.

Managed Service for Apache Spark

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.

  1. 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-cluster.
    • fs.gs.hierarchical.namespace.folders.enable viene 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 impostazione è facoltativa.

Hadoop autogestito

Puoi attivare il connettore Cloud Storage sul tuo cluster Hadoop autogestito per eseguire le operazioni sulle cartelle.

  1. 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.enable viene utilizzato per abilitare lo spazio dei nomi gerarchico su un bucket
    • fs.gs.http.read-timeout è il tempo massimo consentito, in millisecondi, per leggere i dati da una connessione stabilita. Questa impostazione è facoltativa.

Compatibilità con il connettore Cloud Storage versione 3.0.0 o versioni precedenti alla 2.2.23

L'utilizzo del connettore Cloud Storage versione 3.0.0 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:

  • Ridenominazioni delle cartelle inefficienti: 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 dell'operazione rename folder dedicata.

  • 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:

    • Aumentano i costi di archiviazione se non vengono eliminati esplicitamente.
    • Rallentare le operazioni di elenco e aumentare il rischio di timeout delle operazioni di elenco.

  • Problemi di compatibilità: l'utilizzo combinato di versioni precedenti e successive del connettore o l'attivazione e la disattivazione delle operazioni sulle cartelle possono causare problemi di compatibilità durante la ridenominazione delle cartelle. Considera il seguente scenario, che utilizza una combinazione di versioni del connettore:

    1. Utilizza la versione del connettore Cloud Storage precedente alla 2.2.23 per eseguire le seguenti attività:

      1. Scrivere oggetti nella cartella foo/.
      2. Rinomina la cartella foo/ in bar/. L'operazione di ridenominazione copia ed elimina gli oggetti in foo/, ma non elimina la cartella foo/ vuota.
    2. Utilizza il connettore Cloud Storage versione 2.2.23 con le impostazioni delle operazioni sulle cartelle abilitate per rinominare la cartella bar/ in foo/.

    La versione 2.2.23 del connettore, con l'operazione di cartella abilitata, rileva la cartella foo/ esistente, causando l'errore dell'operazione di ridenominazione. La versione precedente del connettore non ha eliminato la cartella foo/ perché l'operazione sulla cartella era disabilitata.

Passaggi successivi