Hadoop-Cluster erstellen

Mit Dataproc können Sie eine oder mehrere Compute Engine-Instanzen erstellen, die eine Verbindung zu einer Cloud Bigtable-Instanz herstellen und Hadoop-Jobs ausführen. Auf dieser Seite wird erläutert, wie Sie mit Dataproc folgende Aufgaben automatisieren:

  • Hadoop und HBase-Client für Java installieren
  • Hadoop und Bigtable konfigurieren
  • Korrekte Autorisierungsbereiche für Bigtable festlegen

Nachdem Sie den Dataproc-Cluster erstellt haben, können Sie mit dem Cluster Hadoop-Jobs ausführen, die Daten in Bigtable lesen und schreiben.

Auf dieser Seite wird angenommen, dass Sie mit Hadoop bereits vertraut sind. Weitere Informationen zu Dataproc finden Sie in der Dataproc-Dokumentation.

Vorbereitung

Vor dem Beginn sollten Sie folgende Schritte durchführen:

  • Erstellen Sie eine Bigtable-Instanz. Merken Sie sich die Projekt-ID und die Bigtable-Instanz-ID.
  • Bigtable, Bigtable Admin, Dataproc, and Cloud Storage JSON APIs aktivieren.

    Aktivieren Sie die APIs

  • Prüfen Sie, ob Ihr Nutzerkonto eine Rolle mit der Berechtigung storage.objects.get hat.

    Öffnen Sie in der Cloud Console die Seite "IAM".

    Weiter zur Seite "IAM"

  • Installieren Sie das Cloud SDK und das gcloud-Befehlszeilentool. Details finden Sie in den Installationsanleitungen für Cloud SDK.
  • Führen Sie folgenden Befehl aus, um das Tool gsutil zu installieren.
    gcloud components install gsutil
  • Installieren Sie Apache Maven, das genutzt wird, um einen Hadoop-Beispieljob auszuführen.

    Unter Debian GNU/Linux oder Ubuntu den folgenden Befehl ausführen:

    sudo apt-get install maven

    Unter RedHat Enterprise Linux oder CentOS den folgenden Befehl ausführen:

    sudo yum install maven

    Unter macOS installieren Sie Homebrew und führen Sie dann den folgenden Befehl aus:

    brew install maven
  • Klonen Sie das GitHub-Repository GoogleCloudPlatform/cloud-bigtable-examples, das ein Beispiel eines Hadoop-Jobs, der Bigtable verwendet, beinhaltet:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Cloud Storage-Bucket erstellen

Dataproc verwendet einen Cloud Storage-Bucket zum Speichern temporärer Dateien. Erstellen Sie einen neuen Bucket für Dataproc, um Konflikte bei der Benennung von Dateien zu vermeiden.

Namen für Cloud Storage-Buckets müssen global in allen Buckets eindeutig sein. Wählen Sie einen Bucket-Namen, der wahrscheinlich verfügbar ist, z. B. einen Namen, der den Namen Ihres Google Cloud-Projekts enthält.

Nachdem Sie einen Namen ausgewählt haben, verwenden Sie den folgenden Befehl, um einen neuen Bucket zu erstellen. Ersetzen Sie dabei die Werte in den Klammern durch die tatsächlichen Werte:

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

Dataproc-Cluster erstellen

Führen Sie den folgenden Befehl aus, um einen Dataproc-Cluster mit vier Worker-Knoten zu erstellen. Ersetzen Sie Werte in Klammern dabei durch die entsprechenden Werte:

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

Weitere konfigurierbare Einstellungen finden Sie in der Dokumentation zu gcloud dataproc clusters create. Wenn Sie eine Fehlermeldung erhalten, die den Text Insufficient 'CPUS' quota enthält, setzen Sie das Flag --num-workers auf einen niedrigeren Wert.

Dataproc-Cluster testen

Wenn Sie den Dataproc-Cluster eingerichtet haben, können Sie den Cluster testen, indem Sie einen Beispiel-Hadoop-Job ausführen, der zählt, wie oft ein Wort in einer Textdatei angezeigt wird. Der Beispieljob verwendet Bigtable zum Speichern der Ergebnisse des Vorgangs. Sie können diesen Beispieljob als Grundlage für einen eigenen Hadoop-Job verwenden.

Hadoop-Beispieljob ausführen

  1. Wechseln Sie innerhalb des Verzeichnisses, in das Sie das GitHub-Repository geklont haben, in das Verzeichnis java/dataproc-wordcount.
  2. Führen Sie den folgenden Befehl aus, um das Projekt zu erstellen. Ersetzen Sie die Werte in Klammern durch die tatsächlichen Werte:

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. Führen Sie den folgenden Befehl aus, um den Hadoop-Job zu starten. Ersetzen Sie die Werte in Klammern durch die tatsächlichen Werte:

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

Wenn der Job abgeschlossen ist, wird der Name der Ausgabetabelle angezeigt, also das Wort WordCount, gefolgt von einem Bindestrich und einer eindeutigen Zahl:

Output table is: WordCount-1234567890

Ergebnisse des Hadoop-Jobs verifizieren

Optional können Sie nach der Ausführung des Hadoop-Jobs mit dem cbt-Tool prüfen, ob der Job erfolgreich ausgeführt wurde:

  1. Öffnen Sie ein Terminalfenster in Cloud Shell.

    In Cloud Shell öffnen

  2. Installieren Sie das cbt-Befehlszeilentool:
        gcloud components update
        gcloud components install cbt
  3. Scannen Sie die Ausgabetabelle, um die Ergebnisse des Hadoop-Jobs zu betrachten. Dabei ersetzen Sie [TABLE_NAME] durch den Namen Ihrer Ausgabetabelle.
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

Sie haben verifiziert, dass der Cluster korrekt eingerichtet ist, und können ihn jetzt verwenden, um Ihre eigenen Hadoop-Jobs auszuführen.

Dataproc-Cluster löschen

Wenn Sie den Dataproc-Cluster nicht mehr benötigen, führen Sie den folgenden Befehl aus, um den Cluster herunterzufahren und zu löschen. Ersetzen Sie [DATAPROC_CLUSTER_NAME] durch den Namen Ihres Dataproc-Clusters:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

Nächste Schritte