Guide de démarrage rapide avec Java et Apache Maven

Ce document explique comment configurer votre projet Google Cloud, créer un projet Maven avec le SDK Apache Beam pour Java, et exécuter un exemple de pipeline sur le service Dataflow. Le pipeline lit un fichier texte à partir de Cloud Storage, compte le nombre de mots uniques dans ce fichier, puis écrit le nombre de mots dans Cloud Storage.

Ce guide de démarrage rapide requiert une bonne connaissance de l'installation et la configuration de Java et de Maven dans votre environnement de production local. Si vous préférez exécuter un exemple de tâche sans installer préalablement les prérequis dans votre environnement local, suivez le tutoriel Dataflow de comptage de mots dans Google Cloud Console.

Accéder au tutoriel Dataflow

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits 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.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

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

    Activer les API

  5. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  6. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  7. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. 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.

  8. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  9. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  10. Activer les API Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Datastore, et Cloud Resource Manager.

    Activer les API

  11. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  12. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  13. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. 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.

  14. Créez un bucket Cloud Storage :
    1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

      Accéder à la page "Buckets"

    2. Cliquez sur Créer un bucket.
    3. Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Pour passer à l'étape suivante, cliquez sur Continuer.
      • Pour nommer votre bucket, saisissez un nom unique. N'incluez aucune information sensible dans le nom des buckets, car leur espace de noms est global et visible par tous.
      • Pour Choisir l'emplacement de stockage des données, procédez comme suit :
        • Sélectionnez une option de type d'emplacement.
        • Sélectionnez une option Location (Emplacement).
      • Pour Choisir une classe de stockage par défaut pour vos données, sélectionnez l'option suivante : Standard
      • Pour le champ Choisir comment contrôler l'accès aux objets, sélectionnez une option de Contrôle des accès.
      • Sous Paramètres avancés (facultatif), choisissez une méthode de chiffrement, une règle de conservation ou des libellés de bucket.
    4. Cliquez sur Create (Créer).
  15. Copiez les éléments suivants, car vous en aurez besoin dans une section ultérieure :
    • Le nom de votre bucket Cloud Storage.
    • L'ID de votre projet Google Cloud. Pour trouver cet ID, consultez la section Identifier des projets.
  16. Téléchargez et installez le kit de développement Java (JDK) version 11. (Dataflow continue à être compatible avec la version 8.) Vérifiez que la variable d'environnement JAVA_HOME est définie et pointe vers votre installation JDK.
  17. 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 du pipeline

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

  1. Dans votre interface système ou votre terminal, utilisez le plug-in Maven Archetype pour créer sur votre ordinateur un projet Maven contenant les exemples WordCount du SDK Apache Beam :
    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.beam \
        -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
        -DarchetypeVersion=2.37.0 \
        -DgroupId=org.example \
        -DartifactId=word-count-beam \
        -Dversion="0.1" \
        -Dpackage=org.apache.beam.examples \
        -DinteractiveMode=false
    

    La commande crée un répertoire nommé word-count-beam dans votre répertoire actuel. Le répertoire 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.

  2. Vérifiez que votre répertoire word-count-beam contient le fichier pom.xml :

    Linux ou macOS

    cd word-count-beam/
    ls

    Le résultat est le suivant :

    pom.xml   src

    Windows

    cd word-count-beam/
    dir

    Le résultat est le suivant :

    pom.xml   src
  3. Vérifiez que votre projet Maven contient les exemples de pipelines suivants :

    Linux ou macOS

    ls src/main/java/org/apache/beam/examples/

    Le résultat est le suivant :

    DebuggingWordCount.java   WindowedWordCount.java   common
    MinimalWordCount.java   WordCount.java

    Windows

    dir src/main/java/org/apache/beam/examples/

    Le résultat est le suivant :

    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 page Exemple Apache Beam WordCount. Les instructions des sections suivantes utilisent WordCount.java.

Exécuter le pipeline en local

  • Dans votre interface système ou votre terminal, exécutez le pipeline WordCount localement à partir de votre répertoire word-count-beam :
    mvn compile exec:java \
        -Dexec.mainClass=org.apache.beam.examples.WordCount \
        -Dexec.args="--output=counts"
    

    Les fichiers de sortie sont dotés du préfixe counts et sont écrits dans le répertoire word-count-beam. Ils contiennent les mots uniques du texte d'entrée et le nombre d'occurrences de chaque mot.

Exécuter le pipeline sur le service Dataflow

  • Dans votre interface système ou votre terminal, compilez et exécutez le pipeline WordCount sur le service Dataflow à partir de votre répertoire word-count-beam :
    mvn -Pdataflow-runner compile exec:java \
        -Dexec.mainClass=org.apache.beam.examples.WordCount \
        -Dexec.args="--project=PROJECT_ID \
        --gcpTempLocation=gs://BUCKET_NAME/temp/ \
        --output=gs://BUCKET_NAME/output \
        --runner=DataflowRunner \
        --region=REGION"
    

    Remplacez l'élément suivant :

Afficher les résultats

  1. Dans Cloud Console, accédez à la page Tâches Dataflow.
    Accéder aux tâches

    La page Tâches affiche les détails de toutes les tâches disponibles, y compris leur état. L'état de la tâche wordcount est initialement Running (En cours d'exécution), puis passe à Succeeded (Réussie).

  2. Dans Cloud Console, accédez à la page du navigateur Cloud Storage.
    Accéder à la page du navigateur

    La page Navigateur affiche la liste de tous les buckets de stockage de votre projet.

  3. Cliquez sur le bucket de stockage que vous avez créé.

    La page Détails du bucket affiche les fichiers de sortie et les fichiers intermédiaires créés par votre tâche Dataflow.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud :

Supprimer le projet

Le moyen le plus simple d'éviter la facturation consiste à supprimer le projet Google Cloud que vous avez créé dans le cadre de ce guide de démarrage rapide.

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer les ressources individuelles

Si vous souhaitez conserver le projet Google Cloud que vous avez utilisé dans ce guide de démarrage rapide, supprimez les ressources individuelles :

  1. Dans la console Google Cloud, accédez à la page Buckets de Cloud Storage.

    Accéder à la page "Buckets"

  2. Cochez la case correspondant au bucket que vous souhaitez supprimer.
  3. Pour supprimer le bucket, cliquez sur Supprimer , puis suivez les instructions.

Étape suivante