Auf dieser Seite erfahren Sie, wie Sie Ihr Google Cloud-Projekt für eine verwaltete Migration zu Dataproc Metastore vorbereiten.
Hinweise
Sie müssen die folgenden Dienste einrichten oder darauf zugreifen können:
- Ein Dataproc Metastore, der mit dem Spanner-Datenbanktyp konfiguriert ist.
Eine Cloud SQL for MySQL-Datenbankinstanz, die mit einer privaten IP-Adresse konfiguriert ist. Achten Sie für die Cloud SQL-Instanz auf Folgendes:
Die Cloud SQL-Instanz ist mit einem VPC-Netzwerk konfiguriert, das die erforderlichen Subnetze verwendet.
Die Cloud SQL-Instanz verwendet ein Datenbankschema, das mit der Hive-Metastore-Version kompatibel ist, die im Dataproc Metastore-Dienst ausgeführt wird (wohin die Daten kopiert werden).
Die Cloud SQL-Instanz enthält die entsprechenden Nutzer, um eine Verbindung zwischen Datastream und Dataproc Metastore sowie zwischen Dataproc Metastore und Cloud SQL herzustellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Dataproc-Metastores und Starten einer verwalteten Migration benötigen:
-
So gewähren Sie vollständigen Zugriff auf alle Dataproc Metastore-Ressourcen, einschließlich der Festlegung von IAM-Berechtigungen:
Dataproc Metastore Admin (
roles/metastore.admin
) für das Dataproc Metastore-Nutzerkonto oder -Dienstkonto -
So gewähren Sie die vollständige Kontrolle über Dataproc Metastore-Ressourcen:
Dataproc Metastore Editor (
roles/metastore.editor
) für das Dataproc Metastore-Nutzerkonto oder -Dienstkonto -
So gewähren Sie die Berechtigung zum Starten einer Migration:
Migration Admin (
roles/metastore.migrationAdmin
) für den Dataproc Metastore-Dienst-Agent im Dienstprojekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Je nach Projekteinstellungen zusätzliche Rollen zuweisen
Je nach Konfiguration Ihres Projekts müssen Sie möglicherweise die folgenden zusätzlichen Rollen hinzufügen. Beispiele dazu, wie Sie diese Rollen den entsprechenden Konten zuweisen, finden Sie weiter unten im Abschnitt Voraussetzungen.
- Weisen Sie dem Dienst-Agenten von Dataproc Metastore und dem [Google APIs-Dienst-Agent] im Dienstprojekt die Rolle „Netzwerknutzer“ (
roles/compute.networkUser
) zu. - Weisen Sie dem Datastream-Dienst-Agent im Hostprojekt die Rolle „Netzwerkadministrator“ (
roles/compute.networkAdmin
) zu.
Wenn sich Ihre Cloud SQL-Instanz in einem anderen Projekt als dem Dataproc Metastore-Dienstprojekt befindet:
- Weisen Sie dem Dataproc Metastore-Dienst-Agent im Cloud SQL-Instanzprojekt die Rolle
roles/cloudsql.client
und die Rolleroles/cloudsql.instanceUser
zu.
Wenn sich der Cloud Storage-Bucket für die Pipeline zum Erfassen von Änderungsdaten in einem anderen Projekt als Ihrem Dataproc Metastore-Dienstprojekt befindet:
- Prüfen Sie, ob der Datastream-Dienst-Agent die erforderlichen Berechtigungen zum Schreiben in den Bucket hat. In der Regel sind dies die Rollen
roles/storage.objectViewer
,roles/storage.objectCreator
undroles/storage.legacyBucketReader
.
Voraussetzungen für die verwaltete Migration
Dataproc Metastore verwendet Proxys und eine Pipeline zur Erfassung von Datenänderungen, um die Datenübertragung zu erleichtern. Es ist wichtig, dass Sie wissen, wie diese funktionieren, bevor Sie mit einer Übertragung beginnen.
Wichtige Begriffe
- Dienstprojekt: Ein Dienstprojekt ist das Google Cloud-Projekt, in dem Sie Ihren Dataproc Metastore-Dienst erstellt haben.
- Hostprojekt: Ein Hostprojekt ist das Google Cloud-Projekt, das Ihre freigegebene VPC-Netzwerke enthält. Ein oder mehrere Dienstprojekte können mit Ihrem Hostprojekt verknüpft werden, um diese freigegebenen Netzwerke zu verwenden. Weitere Informationen finden Sie unter Freigegebene VPC.
- Aktivieren Sie die Datastream API in Ihrem Dienstprojekt.
Weisen Sie dem Dataproc Metastore-Dienst-Agent in Ihrem Dienstprojekt die Rolle
roles/metastore.migrationAdmin
zu.gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
Fügen Sie die folgenden Firewallregeln hinzu.
Um eine Verbindung zwischen Dataproc Metastore und Ihrer Cloud SQL-Instanz mit privater IP-Adresse herzustellen.
Eine Firewallregel, um Traffic von der Systemdiagnoseprüfung zum Netzwerk-Load Balancer des SOCKS5-Proxys zuzulassen. Beispiel:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
Auf Port
1080
wird der SOCKS5-Proxyserver ausgeführt.Eine Firewallregel, die Traffic vom Load Balancer zur SOCKS5-Proxy-MIG zulässt. Beispiel:
gcloud compute firewall-rules create
RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE Eine Firewallregel, die Traffic vom Private Service Connect-Dienstanhang zum Load Balancer zulässt. Beispiel:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
Eine Firewallregel, die es Datastream ermöglicht, den CIDR-IP-Bereich
/29
für die Erstellung einer privaten IP-Verbindung zu verwenden. Beispiel:gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
Optional: Rollen zur freigegebene VPC hinzufügen
Führen Sie diese Schritte aus, wenn Sie eine freigegebene VPC verwenden.
Weitere Informationen zu einer freigegebene VPC finden Sie unter Administratoren von Dienstprojekten.
Weisen Sie dem Dataproc Metastore-Dienst-Agent und dem Google API-Dienst-Agent im Hostprojekt die Rolle
roles/compute.networkUser
zu.gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
Weisen Sie dem Datastream-Dienst-Agent im Hostprojekt die Rolle
roles/compute.networkAdmin
zu.gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
Wenn Sie die Rolle roles/compute.networkAdmin
nicht gewähren können, erstellen Sie eine benutzerdefinierte Rolle mit den Berechtigungen, die unter Voraussetzungen für freigegebene VPCs aufgeführt sind.
Diese Berechtigungen sind zu Beginn der Migration erforderlich, um ein Peering zwischen dem VPC-Netzwerk im Hostprojekt und Datastream herzustellen.
Diese Rolle kann entfernt werden, sobald die Migration gestartet wurde. Wenn Sie die Rolle entfernen, bevor die Migration abgeschlossen ist, kann der Peering-Job von Dataproc Metastore nicht beseitigt werden. In diesem Fall müssen Sie den Job selbst bereinigen.