La bibliothèque Java Open Source du connecteur Cloud Storage vous permet d'exécuter des tâches Apache Hadoop ou Apache Spark directement sur des données dans Cloud Storage.
Avantages du connecteur Cloud Storage
- Accès direct aux données : stockez vos données dans Cloud Storage et accédez-y directement. Vous n'avez pas besoin de les transférer dans HDFS.
- Compatibilité HDFS : accédez à vos données dans
Cloud Storage en utilisant le préfixe
gs://au lieu dehdfs://. - Interopérabilité : le stockage de données dans Cloud Storage permet une interopérabilité transparente entre les services Spark, Hadoop et Google.
- Accessibilité des données : contrairement à HDFS, lorsque vous arrêtez un cluster Hadoop, vous avez toujours accès à vos données dans Cloud Storage.
- Disponibilité élevée des données : la disponibilité des données stockées dans Cloud Storage est élevée, et elles sont répliquées à l'échelle mondiale sans perte de performance.
- Pas de surcharge de la gestion du stockage : contrairement à HDFS, Cloud Storage ne nécessite pas de maintenance périodique, telle que la vérification, la mise à niveau ou le rollback vers une version précédente du système de fichiers.
- Démarrage rapide : dans HDFS, une tâche MapReduce ne peut pas être lancée tant que le
NameNoden'est pas en mode sans échec. Ce processus peut durer de quelques secondes à plusieurs minutes en fonction de la taille et de l'état de vos données. Avec Cloud Storage, vous pouvez exécuter la tâche dès le démarrage des nœuds de tâche, ce qui permet de réaliser des économies considérables au fil du temps.
Configuration du connecteur sur les clusters Dataproc
Le connecteur Cloud Storage est installé par défaut sur tous les
nœuds de cluster Dataproc dans le
/usr/local/share/google/dataproc/lib/ répertoire. Les sous-sections suivantes
décrivent les étapes à suivre pour terminer la configuration du
connecteur sur les clusters Dataproc.
Compte de service de VM
Lorsque vous exécutez le connecteur sur des nœuds de cluster Dataproc
et d'autres VM Compute Engine, la
google.cloud.auth.service.account.enable propriété est définie
sur false par défaut. Cela signifie que vous n'avez pas besoin de configurer les
identifiants du compte de service de VM
pour le connecteur. Ils sont fournis par le
serveur de métadonnées de la VM.
Le compte de service de VM Dataproc doit être autorisé à accéder à votre bucket Cloud Storage.
Versions de connecteur sélectionnées par l'utilisateur
Les versions par défaut du connecteur Cloud Storage utilisées dans les dernières images installées sur les clusters Dataproc sont répertoriées sur les pages des versions d'image. Si votre application dépend d'une version de connecteur non par défaut déployée sur votre cluster, vous pouvez effectuer l'une des actions suivantes pour utiliser la version de connecteur sélectionnée :
- Créez un cluster avec l'option
--metadata=GCS_CONNECTOR_VERSION=x.y.zqui met à jour le connecteur utilisé par les applications s'exécutant sur le cluster vers la version de connecteur spécifiée. - Incluez et transférez les classes et les dépendances de connecteur pour la version que vous utilisez dans le fichier JAR de votre application. Le transfert est nécessaire pour éviter tout conflit entre la version de connecteur déployée et la version de connecteur par défaut installée sur le cluster Dataproc. Consultez également l' exemple de transfert de dépendances Maven.
Configuration du connecteur sur les clusters non Dataproc
Vous pouvez suivre les étapes ci-dessous pour configurer le connecteur Cloud Storage sur un cluster non Dataproc, tel qu'un cluster Apache Hadoop ou Spark que vous utilisez pour transférer des données HDFS sur site vers Cloud Storage.
Téléchargez le connecteur.
- Pour télécharger le connecteur Cloud Storage :
- Pour utiliser une version
latestsituée dans le bucket Cloud Storage (l'utilisation d'une versionlatestn'est pas recommandée pour les applications de production) : - Pour utiliser une version spécifique
de votre bucket Cloud Storage en remplaçant les versions de connecteur Hadoop et
Cloud Storage dans le
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jarmodèle de nom, par exemplegs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar. - Pour utiliser une version spécifique
du
dépôt Apache Maven,
téléchargez un fichier JAR ombré dont le nom contient le suffixe
-shaded.
- Pour utiliser une version
- Pour télécharger le connecteur Cloud Storage :
Installez le connecteur.
Suivez les instructions GitHub pour installer, configurer et tester le connecteur Cloud Storage.
Utilisation du connecteur
Vous pouvez utiliser le connecteur pour accéder aux données Cloud Storage de différentes manières :
- Dans une application Spark, PySpark ou Hadoop avec le préfixe
gs:// - Dans un shell Hadoop avec
hadoop fs -ls gs://bucket/dir/file - Dans le navigateur Cloud Storage de la console Google Cloud
- À l'aide de commandes Google Cloud SDK, telles que :
Utilisation de Java
Java 8 est indispensable au fonctionnement du connecteur Cloud Storage.
Voici un exemple de section de gestion des dépendances Maven POM pour le connecteur Cloud Storage. Pour en savoir plus, consultez la section Gestion des dépendances.
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>gcs-connector</artifactId>
<version>hadoopX-X.X.XCONNECTOR VERSION</version>
<scope>provided</scope>
</dependency>
Pour une version ombrée :
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>gcs-connector</artifactId>
<version>hadoopX-X.X.XCONNECTOR VERSION</version>
<scope>provided</scope>
<classifier>shaded</classifier>
</dependency>
Assistance relative au connecteur
L'assistance du connecteur Cloud Storage est assurée par Google Cloud pour une utilisation avec Google Cloud des produits et des cas d'utilisation. Lorsqu'il est utilisé avec Dataproc, il bénéficie du même niveau d'assistance que celui-ci. Pour en savoir plus, consultez la page Obtenir de l'aide.
Se connecter à Cloud Storage à l'aide de gRPC
Par défaut, le connecteur Cloud Storage sur Dataproc utilise l'API JSON Cloud Storage. Cette section explique comment activer le connecteur Cloud Storage pour utiliser gRPC.
Informations concernant l'utilisation
L'utilisation du connecteur Cloud Storage avec gRPC présente les avantages suivants :
- Emplacement régional du bucket : gRPC ne peut améliorer les latences de lecture que lorsque les VM Compute Engine et les buckets Cloud Storage se trouvent dans la même région Compute Engine.
- Tâches à forte intensité de lecture : gRPC peut améliorer les latences de lecture pour les lectures de longue durée et peut aider les charges de travail à forte intensité de lecture. Il n'est pas recommandé pour les applications qui créent un canal gRPC, exécutent un calcul court, puis ferment le canal.
- Requêtes non authentifiées : gRPC n'est pas compatible avec les requêtes non authentifiées.
Conditions requises
Les exigences suivantes s'appliquent lorsque vous utilisez gRPC avec le connecteur Cloud Storage :
Le réseau VPC de votre cluster Dataproc doit être compatible avec la connectivité directe. Cela signifie que les routes et les règles de pare-feu du réseau doivent autoriser le trafic sortant à atteindre
34.126.0.0/18et2001:4860:8040::/42.- Si votre cluster Dataproc utilise la mise en réseau IPv6, vous devez configurer un sous-réseau IPv6 pour les instances de VM. Pour en savoir plus, consultez la page Configurer IPv6 pour les instances et les modèles d'instance.
Lorsque vous créez un cluster Dataproc, vous devez utiliser la version du connecteur Cloud Storage
2.2.23ou ultérieure avec la version d'image2.1.56+ou la version 3.0.0 ou ultérieure du connecteur Cloud Storage avec la version d'image 2.2.0+. La version du connecteur Cloud Storage installée sur chaque version d'image Dataproc est répertoriée sur les pages des versions d'image Dataproc.- Si vous créez et utilisez un
cluster virtuel Dataproc sur GKE
pour vos requêtes gRPC Cloud Storage, la version
1.28.5-gke.1199000de GKE avecgke-metadata-server 0.4.285est recommandée. Cette combinaison est compatible avec la connectivité directe.
- Si vous créez et utilisez un
cluster virtuel Dataproc sur GKE
pour vos requêtes gRPC Cloud Storage, la version
Vous ou l'administrateur de votre organisation devez accorder des rôles Identity and Access Management qui incluent les autorisations nécessaires pour configurer et envoyer des requêtes gRPC au connecteur Cloud Storage. Ces rôles peuvent inclure les suivants :
- Rôle d'utilisateur : Éditeur Dataproc rôle accordé aux utilisateurs pour leur permettre de créer des clusters et d'envoyer des tâches
- Rôle de compte de service : Rôle Utilisateur d'objets Storage accordé au compte de service de VM Dataproc pour permettre aux applications s'exécutant sur les VM de cluster d'afficher, de lire, de créer et d'écrire des objets Cloud Storage.
Activer gRPC sur le connecteur Cloud Storage
Vous pouvez activer gRPC sur le connecteur Cloud Storage au niveau du cluster ou de la tâche. Une fois activées sur le cluster, les requêtes de lecture du connecteur Cloud Storage utilisent gRPC. Si elles sont activées sur une tâche au lieu du niveau du cluster, les requêtes de lecture du connecteur Cloud Storage n'utilisent gRPC que pour la tâche.
Activer un cluster
Pour activer gRPC sur le connecteur Cloud Storage au niveau du cluster,
définissez la propriété core:fs.gs.client.type=STORAGE_CLIENT lorsque vous
créez un cluster Dataproc.
Une fois gRPC activé au niveau du cluster, les requêtes de
lecture du connecteur Cloud Storage effectuées par les tâches s'exécutant sur le cluster utilisent gRPC.
Exemple gcloud CLI :
gcloud dataproc clusters create CLUSTER_NAME \
--project=PROJECT_ID \
--region=REGION \
--properties=core:fs.gs.client.type=STORAGE_CLIENT
Remplacez les éléments suivants :
- CLUSTER_NAME : spécifiez un nom pour votre cluster.
- PROJECT_NAME : ID du projet dans lequel se trouve le cluster. Les ID de projet sont répertoriés dans la section Informations sur le projet du tableau de bord de la Google Cloud console Dashboard.
- REGION : spécifiez une région Compute Engine dans laquelle le cluster sera situé.
Activer une tâche
Pour activer gRPC sur le connecteur Cloud Storage pour une tâche spécifique, incluez --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
lorsque vous envoyez une tâche.
Exemple : exécutez une tâche sur un cluster existant qui utilise gRPC pour lire des données à partir de Cloud Storage.
Créez un script PySpark local
/tmp/line-count.pyqui utilise gRPC pour lire un fichier texte Cloud Storage et afficher le nombre de lignes dans le fichier.cat <<EOF >"/tmp/line-count.py" #!/usr/bin/python import sys from pyspark.sql import SparkSession path = sys.argv[1] spark = SparkSession.builder.getOrCreate() rdd = spark.read.text(path) lines_counter = rdd.count() print("There are {} lines in file: {}".format(lines_counter,path)) EOFCréez un fichier texte local
/tmp/line-count-sample.txt.cat <<EOF >"/tmp/line-count-sample.txt" Line 1 Line 2 line 3 EOF
Importez les fichiers locaux
/tmp/line-count.pyet/tmp/line-count-sample.txtdans votre bucket Cloud Storage.gcloud storage cp /tmp/line-count* gs://BUCKET
Exécutez la tâche
line-count.pysur votre cluster. Définissez--properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENTpour activer gRPC pour les requêtes de lecture du connecteur Cloud Storage.gcloud dataproc jobs submit pyspark gs://BUCKET/line-count.py \ --cluster=CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT \ -- gs://BUCKET/line-count-sample.txt
Remplacez les éléments suivants :
- CLUSTER_NAME : nom d'un cluster existant.
- PROJECT_NAME : ID de votre projet. Les ID de projet sont répertoriés dans la section Informations sur le projet du Google Cloud tableau de bord de la console.
- REGION : région Compute Engine dans laquelle se trouve le cluster.
- BUCKET : votre bucket Cloud Storage.
Générer des métriques gRPC côté client
Vous pouvez configurer le connecteur Cloud Storage pour générer des métriques associées à gRPC dans Cloud Monitoring. Les métriques associées à gRPC peuvent vous aider à effectuer les opérations suivantes :
- Surveiller et optimiser les performances des requêtes gRPC adressées à Cloud Storage
- Résoudre et déboguer les problèmes
- Obtenir des informations sur l'utilisation et le comportement des applications
Pour savoir comment configurer le connecteur Cloud Storage afin de générer des métriques associées à gRPC, consultez la section Utiliser les métriques gRPC côté client.
Ressources
- Consultez les propriétés de configuration du connecteur Cloud Storage GitHub .
- Consultez la section Se connecter à Cloud Storage à l'aide de gRPC pour utiliser le connecteur Cloud Storage avec des bibliothèques clientes, des contrôles de service VPC et d'autres scénarios.
- Obtenez davantage d'informations sur Cloud Storage.
- Consultez la section Utiliser le connecteur Cloud Storage avec Apache Spark.
- Découvrez le système de fichiers Apache Hadoop .
- Consultez la documentation de référence Javadoc.