Hadoop-MapReduce-Job mit Bigtable
In diesem Beispiel wird Hadoop verwendet, um einen einfachen MapReduce-Job auszuführen, der zählt, wie oft ein Wort in einer Textdatei vorkommt. Dieser MapReduce-Job nutzt Bigtable, um die Ergebnisse des Zuordnungsvorgangs zu speichern. Der Code für dieses Beispiel ist im GitHub-Repository GoogleCloudPlatform/cloud-bigtable-examples im Verzeichnis java/dataproc-wordcount enthalten.
Authentifizierung einrichten
Wenn Sie die Java-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Überblick über das Codebeispiel
Das Codebeispiel stellt eine einfache Befehlszeile zur Verfügung, die als Eingabe eine oder mehrere Textdateien und einen Tabellennamen benötigt. Es findet alle Wörter, die in der Datei vorkommen, und zählt, wie oft jedes Wort vorkommt. Die MapReduce-Logik befindet sich in der Klasse WordCountHBase.
Zuerst führt ein Mapper eine Tokenisierung der Inhalte der Textdatei durch. Er generiert Schlüssel/Wert-Paare, wobei der Schlüssel ein Wort aus der Textdatei und der Wert 1 ist:
Ein Reduzierer summiert dann die Werte für jeden Schlüssel und schreibt die Ergebnisse in eine von Ihnen festgelegte Bigtable-Tabelle. Jeder Zeilenschlüssel ist ein Begriff aus der Textdatei. Jede Zeile enthält eine Spalte cf:count, die angibt, wie oft der Zeilenschlüssel in der Textdatei vorkommt.