Créer un cluster Hadoop

Vous pouvez utiliser Managed Service pour Apache Spark afin de créer une ou plusieurs instances Compute Engine pouvant se connecter à une instance Bigtable et exécuter des tâches Hadoop. Cette page explique comment utiliser Managed Service pour Apache Spark afin d'automatiser les tâches suivantes :

  • Installer Hadoop et le client HBase pour Java
  • Configurer Hadoop et Bigtable
  • Définir les champs d'application d'autorisations appropriés pour Bigtable

Après avoir créé un cluster Managed Service pour Apache Spark, vous pouvez l'utiliser pour exécuter des tâches Hadoop qui lisent et écrivent des données depuis et vers Bigtable.

Dans cette page, nous partons du principe que vous connaissez déjà Hadoop. Pour en savoir plus sur Managed Service pour Apache Spark, consultez la documentation Managed Service pour Apache Spark.

Avant de commencer

Avant de commencer, vous devez effectuer les tâches suivantes :

  • Créer une instance Bigtable Veillez à bien noter l'ID du projet et l'ID de l'instance Bigtable.
  • Activez les API Cloud Bigtable, Cloud Bigtable Admin, Managed Service pour Apache Spark et Cloud Storage JSON.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer les API

  • Vérifiez que votre compte utilisateur est associé à l'autorisation storage.objects.get.

    Ouvrez la page IAM dans la Google Cloud console.

    Ouvrir la page IAM

  • Installez Google Cloud CLI. Pour en savoir plus, consultez les instructions de configuration de gcloud CLI.
  • Installez Apache Maven, utilisé pour exécuter un exemple de tâche Hadoop.

    Sous Debian GNU/Linux ou Ubuntu, exécutez la commande suivante :

    sudo apt-get install maven

    Sous RedHat Enterprise Linux ou CentOS, exécutez la commande suivante :

    sudo yum install maven

    Sur macOS, installez Homebrew, puis exécutez la commande suivante :

    brew install maven
  • Clonez le référentiel GitHub GoogleCloudPlatform/cloud-bigtable-examples, contenant un exemple de tâche Hadoop utilisant Bigtable :
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Créer un bucket Cloud Storage

Managed Service pour Apache Spark utilise un bucket Cloud Storage pour stocker des fichiers temporaires. Pour éviter les conflits de noms de fichiers, créez un bucket pour Managed Service pour Apache Spark.

Les noms de bucket Cloud Storage doivent être uniques sur l'intégralité des buckets. Choisissez un nom de bucket susceptible d'être disponible, par exemple un nom qui inclut le nom de votre Google Cloud projet.

Après avoir choisi un nom, utilisez la commande suivante pour créer un bucket, en remplaçant les valeurs entre crochets par les valeurs appropriées :

gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]

Créer le cluster Managed Service pour Apache Spark

Exécutez la commande suivante pour créer un cluster Managed Service pour Apache Spark avec quatre nœuds de calcul, en remplaçant les valeurs entre crochets par les valeurs appropriées :

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

Pour en savoir plus sur les autres paramètres que vous pouvez configurer, consultez la documentation gcloud dataproc clusters create. Si vous recevez un message d'erreur qui inclut le texte Insufficient 'CPUS' quota, essayez de définir l'--num-workers option sur une valeur inférieure.

Tester le cluster Managed Service pour Apache Spark

Une fois que vous avez configuré votre cluster Managed Service pour Apache Spark, vous pouvez le tester en exécutant un exemple de tâche Hadoop qui va compter le nombre d'occurrences d'un mot dans un fichier texte. Cet exemple de tâche utilise Bigtable pour stocker les résultats de l'opération. Elle peut vous servir de référence pour configurer vos propres tâches Hadoop.

Exécuter l'exemple de tâche Hadoop

  1. Dans le répertoire dans lequel vous avez cloné le dépôt GitHub, accédez au répertoire java/dataproc-wordcount.
  2. Exécutez la commande ci-dessous pour créer le projet, en remplaçant les valeurs entre crochets par les valeurs appropriées :

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. Exécutez la commande ci-dessous pour démarrer la tâche Hadoop, en remplaçant les valeurs entre crochets par les valeurs appropriées :

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

Une fois la tâche terminée, le nom de la table de sortie est affiché. Il est composé du mot WordCount suivi d'un trait d'union et d'un numéro unique :

Output table is: WordCount-1234567890

Vérifier les résultats de la tâche Hadoop

Si vous le souhaitez, après avoir exécuté la tâche Hadoop, vous pouvez utiliser l'CLI cbt pour vérifier qu'elle s'est exécutée correctement :

  1. Ouvrez une fenêtre de terminal dans Cloud Shell.

    Ouvrir dans Cloud Shell

  2. Installez l' cbtinterface de CLI :
        gcloud components update
        gcloud components install cbt
  3. Analysez la table de sortie pour afficher les résultats de la tâche Hadoop, en remplaçant [TABLE_NAME] par le nom de la table de sortie :
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

Maintenant que vous avez vérifié que le cluster est correctement configuré, vous pouvez l'utiliser pour exécuter vos propres tâches Hadoop.

Supprimer le cluster Managed Service pour Apache Spark

Lorsque vous avez terminé d'utiliser le cluster Managed Service pour Apache Spark, exécutez la commande suivante pour l'arrêter et le supprimer, en remplaçant [DATAPROC_CLUSTER_NAME] par le nom de votre cluster Managed Service pour Apache Spark :

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

Étape suivante