Föderation von Metadaten

Mit einer Metadaten-Föderation können Sie auf Metadaten zugreifen, die in mehreren Dataproc Metastore-Instanzen gespeichert sind.

Zum Einrichten der Föderation erstellen Sie einen Föderationsdienst und konfigurieren dann mehrere Dataproc Metastore-Instanzen als Back-End-Metaspeicher. Der Föderationsdienst stellt dann einen einzelnen gRPC-Endpunkt bereit, mit dem Sie auf Metadaten in allen Metastore-Instanzen zugreifen können.

Sie können beispielsweise einen Dataproc-Cluster erstellen und alle Dataproc Metastore-Dienste über einen einzigen Endpunkt verfügbar machen. Danach können Sie Big-Data-Jobs über Open-Source-Software (OSS) wie Spark oder Hive ausführen, um auf mehrere Metadatenspeicher-Instanzen zuzugreifen.

So funktioniert Föderation

OSS-Big-Data-Arbeitslasten, die auf Spark oder Hive ausgeführt werden, senden Anfragen zur Laufzeit an die Hive Metastore API. Beim Senden von Anfragen unterstützt die Hive Metastore-Schnittstelle sowohl Lese- als auch Schreibmethoden. Der Föderationsdienst stellt eine gRPC-Version der Hive Metastore-Schnittstelle zur Verfügung.

Wenn zur Ausführung der Föderation der Dienst eine Anfrage empfängt, führt er eine der folgenden Aktionen aus:

  • Wenn die Anfrage einen Datenbanknamen enthält, wird er an den Back-End-Metastore weitergeleitet, der diese Datenbank enthält. Wenn mehrere Metastore denselben Datenbanknamen enthalten, wird die Anfrage an den Metastore mit dem niedrigeren Rang in der Quellsortierung (auch als Haupt-Metastore bezeichnet) weitergeleitet.
  • Wenn die Anfrage einen Datenbanknamen enthält, werden sie an den niedrigsten Metastore in der Quellsortierung weitergeleitet.
  • Wenn keiner der Metastores eine Datenbank enthält, antwortet die OSS-Engine auf einen entsprechenden Fehler.

Beschränkungen

Die folgenden Einschränkungen gelten für Föderationsdienste:

  • Föderationsdienste sind nur über gRPC-Endpunkte verfügbar. Sie müssen Ihre Dataproc Metastore-Dienste mit gRPC-Endpunkten erstellen, um sie in einen Föderationsdienst aufzunehmen.
  • Föderationsdienste müssen sich in derselben Region befinden wie alle zugehörigen Metastores. Wenn Sie beispielsweise den Föderationsdienst in us-central1 erstellen, müssen Sie dies auch in us-central1 tun.

Metadatenquellen

Wenn Sie einen Föderationsdienst erstellen, müssen Sie eine Metadatenquelle hinzufügen. Für Metadatenquellen gelten folgende Einschränkungen:

  • Ein Föderationsdienst enthält eigene Daten. Stattdessen stellt der Föderationsdienst einfach Metadaten aus einer seiner Metadatenquellen bereit.
  • Ein Föderationsdienst kann nicht als Quelle für Metadaten in einem anderen Föderationsdienst genutzt werden.

Quelltypen

Sie können die folgenden Quellen verwenden, um Metadaten in Ihrem Föderationsdienst zu füllen:

  • Ein Dataproc Metastore-Dienst.

Quellensortierung

Der Föderationsdienst verarbeitet Metadatenanfragen in einer Prioritätsreihenfolge. Dieses Konzept wird als Quellensortierung bezeichnet.

Wenn Sie eine Anfrage an den Föderationsdienst senden, wird die Quellensortierung geprüft und entschieden, welcher Metastore aufgerufen werden soll, um die entsprechenden Metadaten zurückzugeben.

Der Metastore mit dem niedrigsten Rang für die Quellenreihenfolge (d. h. den ersten Rang in der Liste) wird als primäres Metastore bezeichnet. Wenn eine Anfrage an den Föderationsdienst gesendet wird, der keine Datenbank angibt, wird diese an den primären Metastore gesendet. Beispiele von Hive Metastore-Anfragen, für die keine Datenbank angegeben wird, sind set_ugi und create_database.

Hinweis

Zugriffssteuerung

Sie benötigen metastore.federation.*-IAM-Berechtigungen, um die folgenden Aktionen ausführen zu können:

  • Dataproc Metastore-Föderationen auflisten und abrufen
  • Dataproc Metastore-Föderationen erstellen und aktualisieren
  • Dataproc Metastore-Föderationen löschen

Das Nutzerkonto oder Dienstkonto, das über den Föderationsdienst auf Metadaten zugreift, sollte die folgenden IAM-Rollen haben:

  • Verwenden Sie die Rolle roles/metastore.federationAccessor, um auf den Föderationsdienst zuzugreifen.
  • Fügen Sie die folgenden beiden Rollen hinzu, um die Metadatenvorgänge in einem Dataproc Metastore abzuschließen, der mit einem Föderationsdienst konfiguriert ist:

Weitere Informationen finden Sie unter Dataproc Metastore-IAM und -Zugriffssteuerung.

Föderationsdienst erstellen

In der folgenden Anleitung wird erläutert, wie Sie einen Föderationsdienst erstellen und an Ihren Dataproc Metastore-Dienst anhängen.

Zum Erstellen eines Föderationsdienstes müssen Sie bereits mindestens einen Dataproc Metastore-Dienst erstellt haben.

Console

  1. Öffnen Sie in der Konsole die Dataproc Metastore-Seite:

    Dataproc Metastore in der Konsole öffnen

  2. Klicken Sie im Dataproc-Navigationsmenü auf Föderation.

    Die Seite Föderierte Metastore-Dienste wird geöffnet.

  3. Klicken Sie im Navigationsmenü Federated Store auf Erstellen.

    Die Seite Federated Service erstellen wird geöffnet.

  4. Geben Sie in das Feld Dienstname einen eindeutigen Namen für den Dienst ein.

    Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Wählen Sie den Standort aus.

    Achten Sie darauf, dass die Region Ihres Föderationsdiensts mit der Region Ihres primären Metastores übereinstimmt.

  6. Wählen Sie die Hive-Version aus.

  7. Klicken Sie auf Quelle hinzufügen, um eine Quelle für den Föderationsdienst hinzuzufügen.

    Geben Sie für einen Dataproc Metastore-Dienst die Projekt-ID, Region und Dienst-ID an.

    Sie können eine oder mehrere Quellen hinzufügen. Die erste Quelle, die du dieser Liste hinzufügst, wird automatisch als primärer Metastore festgelegt. Sie können die Quellenreihenfolge nach der Erstellung aktualisieren.

    Achten Sie darauf, dass Ihr primärer Metastore eine Hive-Version verwendet, die mit Ihrem Föderationsdienst kompatibel ist. Ihr primärer Metastore muss eine Hive-Version verwenden, die größer oder gleich Ihrem Föderationsdienst ist.

  8. Klicken Sie auf Erstellen, um den Dienst zu erstellen und zu starten.

Föderationsdienst aktualisieren

Die folgende Anleitung zeigt, wie Sie einen Föderationsdienst aktualisieren.

Wenn Sie einen Föderationsdienst aktualisieren, können Sie die folgenden Aufgaben ausführen:

  • Fügen Sie einem Föderationsdienst eine Dataproc Metastore-Quelle hinzu.
  • Entfernen Sie eine Dataproc Metastore-Quelle aus einem Föderationsdienst.
  • Ändern Sie die Quellenreihenfolge der Dataproc Metastores, die in einer Föderation enthalten sind.
  • Eine Föderation endgültig löschen. Nachdem Sie eine Föderation gelöscht haben, werden alle ihre Ressourcen freigegeben.

Console

  1. Öffnen Sie in der Konsole die Dataproc Metastore-Seite:

    Dataproc Metastore in der Konsole öffnen

  2. Klicken Sie im Dataproc-Navigationsmenü auf Föderation.

    Die Seite Föderierte Metastore-Dienste wird geöffnet.

  3. Klicken Sie auf der Seite Federated Services-Metastores auf den Dienstnamen des föderierten Dienstes, den Sie aktualisieren möchten.

    Die Seite Dienstdetails für diesen Dienst wird geöffnet.

  4. Klicken Sie in der Menüleiste auf Bearbeiten.

    Die Seite Dienst bearbeiten wird geöffnet.

  5. Wählen Sie die aktualisierten Werte für die Föderationsparameter aus.

  6. Klicken Sie auf Senden, um den Dienst zu aktualisieren.

Dataproc-Cluster an einen Föderationsdienst anhängen

In der folgenden Anleitung wird gezeigt, wie Sie einen Dataproc-Cluster erstellen und einen Föderationsendpunkt als Metastore anhängen. Bevor Sie mit dieser Anleitung beginnen, müssen Sie Folgendes tun:

gcloud

Führen Sie den folgenden gcloud dataproc clusters create-Befehl aus, um einen Dataproc-Cluster zu erstellen und einen Föderationsendpunkt anzuhängen.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region LOCATION \
    --project PROJECT_ID \
    --scopes https://www.googleapis.com/auth/cloud-platform \
    --image-version IMAGE_VERSION \
    --service-account SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata "proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties "hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"
 

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name des neuen Clusters.
  • PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie den Dataproc-Cluster erstellen.
  • LOCATION: Die Region Ihres Dataproc-Clusters.
  • IMAGE_VERSION: Ihre Dataproc-Image-Version.
  • SERVICE_ACCOUNT: das Dienstkonto, das Sie zum Erstellen Ihres Dataproc-Clusters verwenden. Wenn nicht angegeben, verwendet der Cluster Ihr Compute Engine-Standarddienstkonto.
  • FEDERATION_URI: Der Endpunkt-URI Ihres Föderationsdiensts.
  • FEDERATION_VERSION: Die Hive-Version Ihres Föderationsdienstes.
  • WAREHOUSE_DIR: Das Warehouse-Verzeichnis des primären Metastores.

Weitere Informationen