Créer un cluster Hadoop

Grâce à Dataproc, vous pouvez créer une ou plusieurs instances Compute Engine pouvant se connecter à une instance de Cloud Bigtable et exécuter des tâches Hadoop. Cette page explique comment utiliser Dataproc pour 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 Dataproc, 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 plus d'informations sur Dataproc, consultez la documentation Dataproc.

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.
  • Activer les API Bigtable, Bigtable Admin, Dataproc, and Cloud Storage JSON.

    Activer les API

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

    Ouvrez la page IAM dans Cloud Console.

    Ouvrir la page IAM

  • Installez le SDK Cloud et l'outil de ligne de commande gcloud. Pour en savoir plus, consultez les instructions de configuration du SDK Cloud.
  • Installez l'outil gsutil en exécutant la commande suivante :
    gcloud components install gsutil
  • 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

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

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

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 :

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

Créer le cluster Dataproc

Exécutez la commande suivante pour créer un cluster Dataproc 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] \
    --zone [ZONE] --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 incluant le texte Insufficient 'CPUS' quota, essayez de définir l'option --num-workers sur une valeur inférieure.

Tester le cluster Dataproc

Une fois que vous avez configuré votre cluster Dataproc, 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

Une fois la tâche Hadoop exécutée, vous pouvez utiliser l'outil cbt pour vérifier que la tâche a bien été exécutée :

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

    Ouvrir dans Cloud Shell

  2. Installez l'outil de ligne de commande cbt :
        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 Dataproc

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

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

Étape suivante