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 activés par des espaces de noms hiérarchiques 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 qu'il utilise l'opération renomme le dossier pour des charges de travail telles que Hadoop, Spark et Hive.

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

Dataproc

Vous pouvez utiliser la Google Cloud CLI pour créer un cluster Dataproc et activer le connecteur Cloud Storage 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. 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 correspond au temps maximal autorisé, en millisecondes, pour lire les données d'une connexion établie. Ce paramètre est facultatif.

Hadoop en gestion interne

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 ce qui suit 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 correspond au temps maximal autorisé, en millisecondes, pour lire les données d'une connexion établie. Ce paramètre est facultatif.

Compatibilité avec la version 3.0.0 du connecteur Cloud Storage ou les versions antérieures à 2.2.23

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

  • Renommer des dossiers de manière inefficace: les opérations de renommage de dossiers dans Hadoop sont effectuées à l'aide d'opérations de copie et de suppression au niveau de l'objet, 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:

    • Augmentent les coûts de stockage s'ils ne sont pas supprimés explicitement.
    • ralentissent les opérations de liste et augmentent le risque d'expiration des opérations de liste.

  • Problèmes de compatibilité: mélanger l'utilisation d'anciennes et de nouvelles versions de connecteurs, ou activer et désactiver les opérations de dossier, peut entraîner des problèmes de compatibilité lors du renommage de dossiers. Prenons le scénario suivant, qui utilise une combinaison de versions de connecteurs:

    1. Utilisez une version du connecteur Cloud Storage antérieure à la version 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 renommage copie et supprime les objets sous foo/, mais ne supprime pas le dossier foo/ vide.
    2. Utilisez la version 2.2.23 du connecteur Cloud Storage 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. L'ancienne version du connecteur ne supprime pas le dossier foo/, car l'opération sur le 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