Usa bucket abilitati per lo spazio dei nomi gerarchico per i carichi di lavoro Hadoop

In questa pagina viene descritto come utilizzare i bucket abilitati per lo spazio dei nomi gerarchico per i carichi di lavoro Hadoop.

Panoramica

Quando utilizzi un bucket Cloud Storage con spazio dei nomi gerarchico, puoi configurare il connettore Cloud Storage in modo da utilizzare l'operazione Rinomina cartella per carichi di lavoro come Hadoop, Spark, Hive.

In un bucket senza spazio dei nomi gerarchico, un'operazione di ridenominazione in Hadoop, Spark, e Hive coinvolge più job di copia ed eliminazione degli oggetti, le prestazioni e la coerenza. Ridenominazione di una cartella utilizzando Cloud Storage ottimizza le prestazioni e garantisce la coerenza, nella gestione delle cartelle con un grande numero di oggetti.

Dataproc

Puoi utilizzare Google Cloud CLI per creare un cluster Dataproc e abilitare il connettore Cloud Storage per eseguire le operazioni sulle cartelle.

  1. Installa o aggiorna il connettore Cloud Storage versione 2.2.23 o successiva (esclusa la versione 3.0.0).

  2. Crea un cluster Dataproc utilizzando il comando seguente:

      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. Per esempio: my-cluster
    • 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.

Hadoop autogestito

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

  1. Installa o aggiorna il connettore Cloud Storage versione 2.2.23 o successiva (esclusa la versione 3.0.0).

  2. 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 versioni precedenti alla 2.2.23 o la disattivazione delle operazioni relative alle cartelle per lo spazio dei nomi gerarchico può comportare le seguenti limitazioni:

  • Rinominazioni delle cartelle inefficienti: in Hadoop si verificano operazioni di ridenominazione delle cartelle utilizzando le operazioni di copia ed eliminazione a livello di oggetto, che sono più lente e meno rispetto all'operazione rename folder dedicata.

  • Accumulo di cartelle vuote: le risorse delle cartelle non vengono eliminate automaticamente, con conseguente accumulo di cartelle vuote nel tuo bucket. L'accumulo di cartelle vuote può avere i seguenti effetti:

    • Aumentare i costi di archiviazione se non viene eliminata in modo esplicito.
    • Rallenta le operazioni relative agli elenchi e aumenta il rischio di operazioni sugli elenchi timeout.

  • Problemi di compatibilità: utilizzo combinato di connettori più vecchi e più recenti o l'attivazione e la disattivazione delle operazioni sulle cartelle, problemi di compatibilità durante la ridenominazione delle cartelle. Considera il seguente scenario che utilizza una combinazione di versioni del connettore:

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

      1. Scrivi oggetti nella cartella foo/.
      2. Rinomina la cartella foo/ in bar/. L'operazione di ridenominazione copia elimina gli oggetti in foo/ ma non elimina i campi foo/ vuoti .
    2. Utilizza il connettore Cloud Storage versione 2.2.23 con impostazioni delle operazioni della cartella abilitate per rinominare la cartella bar/ in foo/.

    La versione del connettore 2.2.23, con l'operazione sulle cartelle abilitata, rileva la cartella foo/ esistente, causando il quale l'operazione di ridenominazione non riuscito. La versione precedente del connettore non ha eliminato la cartella foo/ come l'operazione sulla cartella è stata 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova Cloud Storage gratuitamente