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'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles. - Vérifiez que votre compte utilisateur est associé à l'autorisation
storage.objects.get.Ouvrez la page IAM dans la Google Cloud console.
- 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
- Dans le répertoire dans lequel vous avez cloné le dépôt GitHub, accédez au répertoire
java/dataproc-wordcount. 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]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 :
-
Ouvrez une fenêtre de terminal dans Cloud Shell.
- Installez l'
cbtinterface de CLI :gcloud components updategcloud components install cbt - 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
- En savoir plus sur Managed Service pour Apache Spark.
- Faites vos premiers pas avec le client HBase pour Java.