Hadoop-Cluster erstellen

Mit Dataproc können Sie eine oder mehrere Compute Engine-Instanzen erstellen, die eine Verbindung zu einer Bigtable-Instanz herstellen und Hadoop-Jobs ausführen können. 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.
  • Enable the Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON APIs.

    Enable the APIs

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

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

    IAM-Seite öffnen

  • Installieren Sie die Google Cloud CLI. Weitere Informationen finden Sie in der Anleitung zur Einrichtung der gcloud CLI.
  • 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 gewählt haben, verwenden Sie den folgenden Befehl, um einen neuen Bucket zu erstellen. Ersetzen Sie dabei die Werte in den Klammern mit den tatsächlichen Werten:

gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]

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] \
    --region [region] --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 dem Ausführen des Hadoop-Jobs die cbt-Befehlszeile verwenden, um zu bestätigen, dass der Job erfolgreich ausgeführt wurde:

  1. Öffnen Sie ein Terminalfenster in Cloud Shell.

    In Cloud Shell öffnen

  2. So installieren Sie die cbt CLI:
        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