Tâche MapReduce Hadoop avec Bigtable
Cet exemple utilise Hadoop pour effectuer une tâche MapReduce simple qui
compte le nombre d'occurrences d'un mot dans un fichier texte. La tâche MapReduce utilise Bigtable pour stocker les résultats de l'opération de mappage. Le code de
cet exemple se trouve dans le dépôt GitHub
GoogleCloudPlatform/cloud-bigtable-examples, dans le répertoire
java/dataproc-wordcount.
Configurer l'authentification
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur : Créer des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Présentation de l'exemple de code
L'exemple de code fournit une interface de ligne de commande simple qui utilise un ou plusieurs fichiers texte et un nom de table en entrée. Il trouve tous les mots figurant dans le fichier et compte le nombre d'occurrences de chacun. La logique MapReduce est incluse dans la classe WordCountHBase.
Tout d'abord, un mappeur segmente le contenu du fichier texte et génère des paires clé/valeur, où la clé est un mot du fichier texte et la valeur est 1 :
Un réducteur additionne ensuite les valeurs de chaque clé et écrit les résultats dans une table Bigtable que vous avez spécifiée. Chaque clé de ligne est un mot du fichier texte. Chaque ligne contient une colonne cf:count qui indique le nombre d'occurrences de la clé de ligne dans le fichier texte.