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 au préalable dans HDFS.
- Compatibilité HDFS : accédez à vos données dans Cloud Storage à l'aide du préfixe
gs://
au lieu dehdfs://
. - Interopérabilité:le stockage de données dans Cloud Storage permet une interopérabilité parfaite entre les services Spark, Hadoop et Google ;
- Accessibilité des données:lorsque vous arrêtez un cluster Hadoop, ce qui n'est HDFS, vous avez toujours accès à vos données dans Cloud Storage.
- Disponibilité élevée des données : les données stockées dans Cloud Storage sont hautement disponibles et répliquées à l'échelle mondiale sans perte de performances.
- Pas de frais généraux liés à la gestion du stockage:contrairement à HDFS, Cloud Storage ne nécessite aucune maintenance de routine, telle que la vérification du système de fichiers ou une mise à niveau ou un 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
NameNode
est en mode sans échec. 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
les nœuds de cluster Dataproc
Répertoire /usr/local/share/google/dataproc/lib/
. Les sous-sections suivantes décrivent les étapes à suivre pour terminer la configuration des connecteurs sur les clusters Dataproc.
Compte de service de VM
Lors de l'exécution du connecteur sur un cluster Dataproc
et d'autres VM Compute Engine,
La propriété google.cloud.auth.service.account.enable
est définie
sur false
par défaut, ce qui signifie que vous n'avez pas besoin de configurer
Compte de service de VM
les identifiants du connecteur : les identifiants du compte de service de VM sont fournis par
Serveur de métadonnées de VM
Dataproc Compte de service de VM doit avoir l'autorisation d'accéder à votre bucket Cloud Storage.
Versions de connecteurs sélectionnées par l'utilisateur
Versions par défaut du connecteur Cloud Storage utilisées dans les images les plus récentes installés sur des clusters Dataproc sont listés pages de version d'image. Si votre application dépend d'une version de connecteur autre que celle par défaut déployée sur votre vous pouvez effectuer l'une des actions suivantes pour utiliser le cluster Version du connecteur:
- Créer un cluster avec
--metadata=GCS_CONNECTOR_VERSION=x.y.z
qui met à jour le connecteur utilisé par les applications exécutées sur le cluster à la version spécifiée du connecteur. - Incluez et relocalisez les classes de connecteur et les dépendances de connecteur pour la version que vous utilisez dans le fichier JAR de votre application. La relocalisation 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 relocalisation des dépendances Maven.
Configuration du connecteur sur des clusters autres que Dataproc
Vous pouvez suivre les étapes ci-dessous pour configurer le connecteur Cloud Storage sur Un cluster autre que Dataproc, comme un cluster Apache Hadoop ou Spark que vous utilisez pour déplacer 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
latest
située dans un bucket Cloud Storage (l'utilisation d'une versionlatest
n'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 modèle de nom
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
, par exemplegs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
. - Utiliser une version spécifique
à partir de
Dépôt Apache Maven
télécharge 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 dans : 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 Dans la console Google Cloud
- Utilisation des commandes du SDK Google Cloud, par exemple:
*
gcloud storage cp
*gcloud storage rsync
Utilisation de Java
Java 8 est indispensable au fonctionnement du connecteur Cloud Storage.
Voici un exemple de section sur la gestion des dépendances Maven POM pour connecteur Cloud Storage. Pour en savoir plus, consultez 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>
Compatibilité avec les connecteurs
Google Cloud assure l'assistance du connecteur Cloud Storage lorsqu'il est employé avec ses produits et cas d'utilisation. Lorsqu'il est utilisé avec Dataproc, il est compatible avec le même niveau Dataproc. Pour plus d'informations, 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 qu'il utilise gRPC.
Informations concernant l'utilisation
L'utilisation du connecteur Cloud Storage avec gRPC inclut les considérations suivantes :
- Emplacement du bucket régional : le 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 intensives en lecture : gRPC peut améliorer les latences de lecture pour les lectures de longue durée et peut aider les charges de travail intensives en lecture. Elle n'est pas recommandée pour les applications qui créent un canal gRPC, effectuer un court calcul, puis fermer le canal.
- Requêtes non authentifiées:gRPC n'est pas compatible avec les requêtes non authentifiées. requêtes.
Conditions requises
Les exigences suivantes s'appliquent lorsque vous utilisez gRPC avec le connecteur Cloud Storage :
Le réseau VPC de votre cluster Dataproc sont compatibles 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/18
et2001:4860:8040::/42
.- Si votre cluster Dataproc utilise un réseau IPv6, vous devez définir un sous-réseau IPv6 pour les instances de VM. Pour en savoir plus, consultez la section Configurer IPv6 pour les instances et les modèles d'instance.
Lorsque vous créez un cluster Dataproc, vous devez utiliser la version
2.2.23
ou ultérieure du connecteur Cloud Storage 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 ou ultérieure. La version du connecteur Cloud Storage installée sur chaque version d'image Dataproc est indiqué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 de GKE
Nous vous recommandons d'utiliser
1.28.5-gke.1199000
avecgke-metadata-server 0.4.285
. 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 de GKE
Nous vous recommandons d'utiliser
Vous ou l'administrateur de votre organisation devez attribuer 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 utilisateur : rôle Éditeur Dataproc 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 de stockage accordé au compte de service de VM Dataproc pour permettre aux applications exécutées 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é sur le cluster, le connecteur Cloud Storage utilise gRPC pour les requêtes de lecture. Si elles sont activées pour une tâche plutôt qu'au niveau du cluster, les requêtes de lecture du connecteur Cloud Storage utilisent gRPC uniquement 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 exécutées sur le cluster utilisent gRPC.
Exemple de CLI gcloud :
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 le tableau de bord de la console Google Cloud.
- REGION : spécifiez une région Compute Engine dans laquelle se trouvera le cluster.
Activer un job
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écuter une tâche sur un cluster existant qui utilise gRPC pour lire des données Cloud Storage.
Créez un script PySpark
/tmp/line-count.py
local qui utilise gRPC pour lire un fichier texte Cloud Storage et générez le nombre de lignes qu'il contient.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)) EOF
Créez un fichier texte
/tmp/line-count-sample.txt
local.cat <<EOF >"/tmp/line-count-sample.txt" Line 1 Line 2 line 3 EOF
Importer les fichiers
/tmp/line-count.py
et/tmp/line-count-sample.txt
locaux dans votre bucket dans Cloud Storage.gcloud storage cp /tmp/line-count* gs://BUCKET
Exécutez le job
line-count.py
sur votre cluster. Définir--properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
jusqu'à activer les requêtes de lecture du connecteur gRPC pour 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 tableau de bord de la console Google Cloud.
- REGION: région Compute Engine dans laquelle se trouve le cluster localisés.
- 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 liées à gRPC dans Cloud Monitoring. Les métriques liées à gRPC peuvent vous aider effectuer les opérations suivantes:
- Surveiller et optimiser les performances des requêtes gRPC vers Cloud Storage
- Résoudre et déboguer les problèmes
- Obtenir des insights sur l'utilisation et le comportement des applications
Pour en savoir plus sur la configuration du connecteur Cloud Storage pour générer des métriques liées à gRPC, consultez Utilisez des métriques gRPC côté client.
Ressources
- Consultez Se connecter à Cloud Storage à l'aide de gRPC pour utiliser le connecteur Cloud Storage avec les bibliothèques clientes, VPC Service Controls et d'autres scénarios.
- Obtenez davantage d'informations sur Cloud Storage.
- Consultez Utiliser le connecteur Cloud Storage avec Apache Spark.
- Familiarisez-vous avec le système de fichiers Apache Hadoop.
- Consultez la documentation de référence Javadoc.