Auf dieser Seite wird erläutert, wie Sie einen Dienst für die Metadatenföderation für Dataproc Metastore erstellen. Mit einem Föderationsdienst können Sie über einen einzelnen gRPC-Endpunkt auf Metadaten zugreifen, die in mehreren Quellen gespeichert sind.
Weitere Informationen zur Funktionsweise der Föderation und zu ihren Einschränkungen finden Sie unter Informationen zur Metadatenföderation.
Hinweis
- Dataproc Metastore aktivieren
- Erstellen Sie einen Dataproc Metastore-Dienst, der den gRPC-Endpunkt verwendet.
- Optional: Wenn Sie eine BigQuery-Quelle für die Föderation verwenden, gehen Sie so vor:
- Aktivieren Sie die BigQuery API in dem Projekt, das die BigQuery-Quelle enthält.
- Resource Manager API aktivieren
- Optional: Wenn Sie einen Knowledge Catalog-Lake als Quelle für die Föderation (Vorschau) verwenden, führen Sie die folgenden Schritte aus:
- Aktivieren Sie die Dataplex API in dem Projekt, das einen Knowledge Catalog-Lake als Quelle enthält.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Föderationsdienstes und zum Anhängen eines Managed Service for Apache Spark-Clusters benötigen, wobei das Prinzip der geringsten Berechtigung berücksichtigt wird:
-
So greifen Sie auf den Föderationsdienst zu:
Federation accessor (
roles/metastore.federationAccessor) für das Nutzerkonto oder Dienstkonto -
So gewähren Sie die vollständige Kontrolle über alle Dataproc Metastore-Ressourcen:
Dataproc Metastore-Editor (
roles/metastore.editor) für das Nutzerkonto oder Dienstkonto -
So führen Sie Metadatenvorgänge für einen Dataproc Metastore aus, der mit einem Föderationsdienst konfiguriert ist:
Metastore-Inhaber (
metastore.metadataEditor) für das Nutzerkonto oder Dienstkonto -
So erstellen Sie einen Managed Service for Apache Spark-Cluster:
Managed Service for Apache Spark-Worker (
roles/dataproc.worker) im Dienstkonto der Managed Service for Apache Spark-VM - Optional: So greifen Sie auf BigQuery-Datasets zu: Verwenden Sie eine geeignete vordefinierte BigQuery-Rolle für Ihren Anwendungsfall für das Nutzerkonto oder Dienstkonto.
- Optional: So greifen Sie auf Knowledge Catalog Lakes (Vorabversion) zu: Verwenden Sie eine geeignete vordefinierte Knowledge Catalog-Rolle für Ihren Anwendungsfall für das Nutzerkonto oder Dienstkonto.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen eines Föderationsdienstes und zum Anhängen eines Managed Service for Apache Spark-Clusters erforderlich sind, wobei das Prinzip der geringsten Berechtigung berücksichtigt wird. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um einen Föderationsdienst zu erstellen und einen Managed Service for Apache Spark-Cluster anzuhängen, wobei das Prinzip der geringsten Berechtigung gilt:
-
So erstellen Sie einen Dataproc Metastore:
metastore.services.createfür das Nutzerkonto oder Dienstkonto -
So listen Sie einen Föderationsdienst auf, rufen ihn ab, erstellen, aktualisieren oder löschen ihn:
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.listfür das Nutzerkonto oder Dienstkonto -
So führen Sie Metadatenvorgänge in einem Dataproc Metastore aus:
metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicyim Nutzerkonto oder Dienstkonto -
Optional: So greifen Sie auf BigQuery-Datasets zu:
For more information, see BigQuery permissionsfür das Nutzerkonto oder Dienstkonto -
Optional: So greifen Sie auf Knowledge Catalog Lakes (Vorabversion) zu:
For more information, see Knowledge Catalog permissionsfür das Nutzerkonto oder Dienstkonto
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Dataproc Metastore-Zugriff mit Identity and Access Management verwalten.Föderationsdienst erstellen
In der folgenden Anleitung erfahren Sie, wie Sie einen Föderationsdienst erstellen und an eine Quelle anhängen. Nachdem Sie diese Schritte ausgeführt haben, können Sie Ihren Föderationsdienst an einen Managed Service for Apache Spark-Cluster anhängen.
Weitere Informationen zu Föderationsquellen und ihren Einschränkungen finden Sie unter Metadatenquellen.
Console
Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:
Klicken Sie im Navigationsmenü von Managed Service for Apache Spark auf Federation (Föderation).
Die Seite Federated-Metastore-Dienste wird geöffnet.
Klicken Sie in der Menüleiste des Metastore Federated auf Create (Erstellen).
Die Seite Föderationsdienst erstellen wird geöffnet.
Geben Sie im Feld Name der Föderation einen eindeutigen Namen für Ihren Dienst ein.
Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.
Wählen Sie den Speicherort der Daten aus.
Achten Sie darauf, dass Sie den Föderationsdienst in denselben Regionen wie Ihre Dataproc Metastore-Quellen erstellen.
Wählen Sie die Version von Hive aus.
Wenn Sie eine Quelle für Ihren föderierten Dienst hinzufügen möchten, klicken Sie auf Quelle hinzufügen.
Sie können eine oder mehrere Quellen hinzufügen. Die erste Quelle, die Sie dieser Liste hinzufügen, wird automatisch als primärer Metastore festgelegt. Sie können die Reihenfolge der Quellen nach der Erstellung aktualisieren.
Wählen Sie unter Quelltyp Ihre Föderationsquelle aus.
Sie können eine Dataproc Metastore-Instanz, ein Projekt mit einem oder mehreren BigQuery-Datasets oder einen Knowledge Catalog-Lake (Vorabversion) auswählen.
Geben Sie im Feld Quelle die folgenden Informationen ein:
Für einen Dataproc Metastore-Dienst.
Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie das Projekt aus, das den Dataproc Metastore enthält, den Sie als Quelle verwenden möchten.
Achten Sie darauf, dass für Ihre Dataproc Metastore-Quellen eine Hive-Version verwendet wird, die mit Ihrem Föderationsdienst kompatibel ist. Für Ihren primären Metastore muss eine Hive-Version verwendet werden, die größer oder gleich der Version Ihres Dienstes für die Föderation ist.
Wählen Sie im Drop-down-Menü Metastore-Dienst den Dataproc Metastore aus, den Sie als Quelle verwenden möchten.
Optional: Klicken Sie das Kästchen Metastore-Dienste außerhalb meiner Region anzeigen an. Hier werden Dataproc Metastore-Dienste aus anderen Regionen aufgeführt.
Für BigQuery Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie die Projekt-ID des Projekts aus, das das BigQuery-Dataset enthält.
Für Knowledge Catalog (Vorschau). Klicken Sie im Feld Ausgewähltes Projekt auf Durchsuchen und wählen Sie die Projekt-ID des Projekts aus, das den Knowledge Catalog Lake enthält.
Klicken Sie auf Fertig.
Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.
Sie können Ihren Föderationsdienst jetzt an einen Managed Service for Apache Spark-Cluster anhängen.
gcloud-CLI
Führen Sie den folgenden Befehl aus, um eine Föderation mit Dataproc Metastore zu erstellen.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Ersetzen Sie Folgendes:
FEDERATION: Der Name Ihres Dataproc Metastore-Föderationsdienstes.LOCATION: Die Google Cloud Region, in der die Föderation erstellt werden soll.RANK: Eine Rankingnummer für jeden Ihrer Backend-Metastores, die zum Beheben von Konflikten bei Datenbanknamen verwendet wird. Der Föderationsdienst fragt zuerst Nummern mit niedrigerem Rang ab. Beispielsweise wird ein Backend-Metastore mit dem Rang1vor einem Metastore mit dem Rang2abgefragt. Dieser Wert muss eine Ganzzahl sein. Beispiel:--backends 1=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: Die relative Ressource jedes Backend-Metastores im folgenden Format:METASTORE_TYPE:METASTORE_NAME. Verwenden Sie für Dataproc Metastore-Dienstedpms:SERVICE_ID. DieSERVICE_IDfinden Sie unterprojects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: Die Version von Hive Metastore (entweder 3.1.2 oder 2.3.6).
Föderationsdienst aktualisieren
In der folgenden Anleitung erfahren Sie, wie Sie einen Föderationsdienst aktualisieren. Sie können folgende Aufgaben ausführen:
- Fügen Sie einem Föderationsdienst eine Quelle hinzu.
- Entfernen Sie eine Quelle aus einem Föderationsdienst.
- Ändern Sie die Reihenfolge der Quellen, die in einem föderierten Dienst enthalten sind.
Löschen Sie einen Föderationsdienst dauerhaft. Wenn Sie einen Dienst löschen, werden alle seine Ressourcen freigegeben.
Console
https://cloud.google.com/dataproc-metastore/docs/create-federation
Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:
Klicken Sie im Navigationsmenü von Managed Service for Apache Spark auf Federation (Föderation).
Die Seite Federated-Metastore-Dienste wird geöffnet.
Klicken Sie auf der Seite Federated (Föderiert) auf den Namen des Dienstes, den Sie aktualisieren möchten.
Die Seite Dienstdetails wird geöffnet.
Klicken Sie in der Menüleiste auf Bearbeiten.
Die Seite Dienst bearbeiten wird geöffnet.
Wählen Sie die Werte aus, die Sie aktualisieren möchten.
Klicken Sie auf Senden, um den Dienst zu aktualisieren.
gcloud-CLI
Führen Sie den folgenden Befehl aus, um eine Föderation mit Dataproc Metastore zu aktualisieren.
gcloud metastore federations update FEDERATION \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION: Der Name Ihres Dataproc Metastore-Föderationsdienstes.LOCATION: Die Google Cloud -Region, in der die Föderation erstellt werden soll.RANK: Eine Rankingnummer für jeden Ihrer Backend-Metastores, die zum Beheben von Konflikten bei Datenbanknamen verwendet wird. Der Föderationsdienst fragt zuerst Nummern mit niedrigerem Rang ab. Beispielsweise wird ein Backend-Metastore mit dem Rang1vor einem Metastore mit dem Rang2abgefragt. Dieser Wert muss eine Ganzzahl sein. Beispiel:--backends 2=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: Die relative Ressource jedes Backend-Metastores im folgenden Format:METASTORE_TYPE:METASTORE_NAME. Verwenden Sie für Dataproc Metastore-Dienstedpms:SERVICE_ID. DieSERVICE_IDfinden Sie unterprojects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: Die Version von Hive Metastore (entweder 3.1.2 oder 2.3.6).
Managed Service for Apache Spark-Cluster an einen Föderationsdienst anhängen
In der folgenden Anleitung wird gezeigt, wie Sie einen Managed Service for Apache Spark-Cluster erstellen und einen Föderationsdienstendpunkt als Metastore anhängen.
Bevor Sie mit dieser Anleitung beginnen, führen Sie alle Schritte unter Vorbereitung aus und erstellen Sie einen Verbunddienst.
gcloud-CLI
Führen Sie den folgenden gcloud Managed Service for Apache Spark clusters create-Befehl aus, um einen Managed Service for Apache Spark-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 Ihres neuen Managed Service for Apache Spark-Clusters.PROJECT_ID: Die Google Cloud Projekt-ID des Projekts, in dem Sie den Managed Service for Apache Spark-Cluster erstellen.LOCATION: Die Region Ihres Managed Service for Apache Spark-Clusters.IMAGE_VERSION: Die Version des Managed Service for Apache Spark-Images, die Sie verwenden möchten.Achten Sie darauf, dass das Managed Service for Apache Spark-Image, das Sie in diesem Befehl verwenden, mit der Hive-Version kompatibel ist, die mit Ihrem Föderationsdienst verwendet wird. Weitere Informationen finden Sie in der Liste der Image-Versionen für Managed Service for Apache Spark.
SERVICE_ACCOUNT(optional): Das Dienstkonto, das Sie zum Erstellen Ihres Managed Service for Apache Spark-Clusters verwenden. Wenn nicht angegeben, verwendet der Cluster Ihr Compute Engine-Standarddienstkonto.FEDERATION_URI: Der Endpunkt-URI Ihres Föderationsdienstes.FEDERATION_VERSION: Die Hive-Version, die von Ihrem Föderationsdienst verwendet wird.WAREHOUSE_DIR: das Warehouse-Verzeichnis Ihres primären Dataproc Metastore.