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.
Installez ou mettez à jour le connecteur Cloud Storage version 2.2.23 ou ultérieure (à l'exception de la version 3.0.0).
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.
Installez ou mettez à jour le connecteur Cloud Storage version 2.2.23 ou ultérieure (à l'exception de la version 3.0.0).
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:
Utilisez une version du connecteur Cloud Storage antérieure à la version 2.2.23 pour effectuer les tâches suivantes:
- Écrivez des objets sous le dossier
foo/
. - Renommez le dossier
foo/
enbar/
. L'opération de renommage copie et supprime les objets sousfoo/
, mais ne supprime pas le dossierfoo/
vide.
- Écrivez des objets sous le dossier
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/
enfoo/
.
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 dossierfoo/
, 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