Guide de démarrage rapide avec Java et Apache Maven

Cette page vous explique comment configurer votre projet Google Cloud Platform, créer un projet Maven avec le SDK Apache Beam, et exécuter un exemple de pipeline sur le service Cloud Dataflow.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans la page de sélection du projet de la console GCP, sélectionnez ou créez un projet GCP.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform. Découvrez comment confirmer que la facturation est activée pour votre projet.

  4. Activez les Cloud Dataflow, Compute Engine, Stackdriver Logging, Google Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Datastore, et Cloud Resource Manager API requises.

    Activer les API

  5. Configurez l'authentification en procédant comme suit :
    1. Dans la console GCP, accédez à la page Créer une clé de compte de service.

      Accéder à la page "Créer une clé de compte de service"
    2. Dans la liste Compte de service, sélectionnez Nouveau compte de service.
    3. Dans le champ Nom du compte de service, saisissez un nom.
    4. Dans la liste Rôle, sélectionnez Projet > Propriétaire.

      Remarque : Le champ Rôle autorise votre compte de service à accéder aux ressources. Vous pouvez afficher et modifier ce champ ultérieurement à l'aide de la console GCP. Si vous développez une application de production, spécifiez des autorisations plus précises que Projet > Propriétaire. Pour plus d'informations, consultez la page Attribuer des rôles aux comptes de service.
    5. Cliquez sur Créer. Un fichier JSON contenant votre clé est téléchargé sur votre ordinateur.
  6. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour pointer vers le chemin du fichier JSON contenant la clé de votre compte de service. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

  7. Créez un bucket Cloud Storage :
    1. Dans la console GCP, accédez au navigateur Cloud Storage.

      Accéder au navigateur Cloud Storage

    2. Cliquez sur Créer un bucket.
    3. Dans la boîte de dialogue Créer un bucket, spécifiez les attributs suivants :
      • Nom : nom de bucket unique. N'incluez aucune information sensible dans le nom des buckets, car leur espace de noms est global et visible par tous.
      • Classe de stockage: Multirégionale
      • Un emplacement où seront stockées les données du bucket.
    4. Cliquez sur Créer.
  8. Téléchargez et installez le kit de développement Java (JDK) version 8. Vérifiez que la variable d'environnement JAVA_HOME est définie et qu'elle pointe vers votre installation JDK.
  9. Téléchargez et installez Apache Maven en suivant les instructions du guide d'installation de Maven spécifique à votre système d'exploitation.

Obtenir le code WordCount

Le SDK Apache Beam est un modèle de programmation Open Source pour les pipelines de données. Vous définissez ces pipelines avec un programme Apache Beam et pouvez choisir un programme d'exécution, tel que Cloud Dataflow, pour les exécuter.

Créez un projet Maven contenant les exemples WordCount du SDK Apache Beam à l'aide du plug-in Maven Archetype. Exécutez la commande mvn archetype:generate dans votre interface système ou votre terminal, comme indiqué ci-dessous :

$ mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.16.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

Après avoir exécuté la commande, vous devriez constater que votre répertoire actuel comporte un nouveau répertoire nommé word-count-beam. word-count-beam contient un simple fichier pom.xml et une série d'exemples de pipelines effectuant un décompte des mots dans des fichiers texte.

$ cd word-count-beam/

$ ls
pom.xml	src

$ ls src/main/java/org/apache/beam/examples/
DebuggingWordCount.java	WindowedWordCount.java	common
MinimalWordCount.java	WordCount.java

Pour une présentation détaillée des concepts d'Apache Beam utilisés dans ces exemples, reportez-vous à la Présentation pas-à-pas de l'exemple WordCount. Ici, nous allons simplement nous concentrer sur l'exécution de WordCount.java.

Exécuter WordCount localement

Lancez WordCount en local en exécutant la commande suivante depuis votre répertoire word-count-beam :

$ mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=./output/"

Exécuter WordCount sur le service Cloud Dataflow

Compilez et exécutez WordCount sur le service Cloud Dataflow :

  • Pour l'argument --project, spécifiez l'ID de projet correspondant au projet GCP que vous avez créé.
  • Pour les arguments --stagingLocation et --output, spécifiez un nom de chemin basé sur le bucket Cloud Storage que vous avez créé.

$ mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner"

Afficher les résultats

  1. Ouvrez l'interface utilisateur Web de Cloud Dataflow.
    Accéder à l'interface utilisateur Web de Cloud Dataflow

    Votre tâche wordcount présente au début l'état Running (En cours d'exécution), puis l'état Succeeded (Réussie) :

    Tâches Cloud Dataflow
  2. Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
    Accéder au navigateur Cloud Storage

    Dans votre bucket, vous devriez voir les fichiers de sortie et les fichiers intermédiaires créés par votre tâche :

    Bucket Cloud Storage

Nettoyer

Afin d'éviter que des frais ne soient facturés sur votre compte GCP pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :

  1. Dans la console GCP, accédez au navigateur Cloud Storage.

    Accéder au navigateur Cloud Storage

  2. Cochez la case correspondant au bucket que vous souhaitez supprimer.
  3. Cliquez sur Delete pour supprimer le bucket.

Étape suivante