Utiliser des buckets activés par des espaces de noms hiérarchiques pour les charges de travail Hadoop

Cette page explique comment utiliser des buckets avec l'espace de noms hiérarchique activé pour les charges de travail Hadoop.

Présentation

Lorsque vous utilisez un bucket Cloud Storage avec un espace de noms hiérarchique, vous pouvez configurer le connecteur Cloud Storage pour utiliser l'opération de renommage de dossier pour les charges de travail telles que Hadoop, Spark et Hive.

Dans un bucket sans espace de noms hiérarchique, une opération de changement de nom dans Hadoop, Spark et Hive implique plusieurs tâches de copie et de suppression d'objets, ce qui a un impact sur les performances et la cohérence. Renommer un dossier à l'aide du connecteur Cloud Storage optimise les performances et garantit la cohérence lors du traitement de dossiers contenant un grand nombre d'objets.

Dataproc

Vous pouvez utiliser Google Cloud CLI pour créer un cluster Dataproc et activer le connecteur Cloud Storage afin d'effectuer les opérations de dossier.

  1. Installez ou mettez à jour le connecteur Cloud Storage version 2.2.23 ou ultérieure (à l'exception de la version 3.0.0).

  2. Créez un cluster Dataproc à l'aide de la commande suivante :

      gcloud dataproc clusters create CLUSTER_NAME
      --properties=core:fs.gs.hierarchical.namespace.folders.enable=true,
      core:fs.gs.http.read-timeout=30000
      

    Où :

    • CLUSTER_NAME est le nom du cluster. Par exemple, my-cluster
    • fs.gs.hierarchical.namespace.folders.enable permet d'activer l'espace de noms hiérarchique sur un bucket.
    • fs.gs.http.read-timeout est le temps maximal autorisé, en millisecondes, pour lire les données d'une connexion établie. Il s'agit d'un paramètre facultatif.

Hadoop autogéré

Vous pouvez activer le connecteur Cloud Storage sur votre cluster Hadoop autogéré pour effectuer les opérations de dossier.

  1. Installez ou mettez à jour le connecteur Cloud Storage version 2.2.23 ou ultérieure (à l'exception de la version 3.0.0).

  2. Ajoutez le code suivant au fichier de configuration 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>
      

    Où :

    • fs.gs.hierarchical.namespace.folders.enable permet d'activer l'espace de noms hiérarchique sur un bucket.
    • fs.gs.http.read-timeout est le temps maximal autorisé, en millisecondes, pour lire les données d'une connexion établie. Il s'agit d'un paramètre facultatif.

Compatibilité avec le connecteur Cloud Storage version 3.0.0 ou versions antérieures à 2.2.23

L'utilisation du connecteur Cloud Storage version 3.0.0 ou d'une version antérieure à 2.2.23, ou la désactivation des opérations de dossier pour l'espace de noms hiérarchique, peut entraîner les limites suivantes :

  • Renommage des dossiers de manière inefficace : les opérations de renommage de dossier dans Hadoop utilisent des opérations de copie et de suppression au niveau des objets, ce qui est plus lent et moins efficace que l'opération rename folder dédiée.

  • Accumulation de dossiers vides : les ressources de dossier ne sont pas supprimées automatiquement, ce qui entraîne l'accumulation de dossiers vides dans votre bucket. L'accumulation de dossiers vides peut avoir les conséquences suivantes :

    • Augmentation des coûts de stockage si elles ne sont pas supprimées explicitement.
    • Ralentissement des opérations de liste et augmentation du risque d'expiration des opérations de liste.

  • Problèmes de compatibilité : le mélange des versions anciennes et nouvelles du connecteur, ou l'activation et la désactivation des opérations de dossier, peut entraîner des problèmes de compatibilité lors du changement de nom des dossiers. Prenons l'exemple suivant, qui utilise une combinaison de versions de connecteurs :

    1. Utilisez la version du connecteur Cloud Storage antérieure à 2.2.23 pour effectuer les tâches suivantes :

      1. Écrivez des objets sous le dossier foo/.
      2. Renommez le dossier foo/ en bar/. L'opération de changement de nom copie et supprime les objets sous foo/, mais ne supprime pas le dossier foo/ vide.
    2. Utilisez le connecteur Cloud Storage version 2.2.23 avec les paramètres d'opérations de dossier activés pour renommer le dossier bar/ en foo/.

    La version 2.2.23 du connecteur, avec l'opération de dossier activée, détecte le dossier foo/ existant, ce qui entraîne l'échec de l'opération de renommage. La version antérieure du connecteur n'a pas supprimé pas le dossier foo/, car l'opération de dossier était désactivée.

Étape suivante

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud Storage en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de Cloud Storage