Auf dieser Seite wird beschrieben, wie Sie einen multiregionalen Dataproc Metastore-Dienst einrichten. Weitere Informationen zur Funktionsweise multiregionaler Dataproc Metastore-Dienste finden Sie unter Dataproc Metastore-Regionen.
Hinweise
- Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
- Machen Sie sich mit den Netzwerkanforderungen vertraut, die für Ihr Projekt spezifisch sind.
- Weitere Informationen zu Dataproc Metastore-Regionen und Auswählen einer geeigneten Region
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen nach dem Prinzip der geringsten Berechtigung die folgenden IAM-Rollen für Ihr Projekt zu gewähren, um die Berechtigung zu erhalten, die Sie zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes benötigen:
-
Uneingeschränkte Kontrolle über Dataproc Metastore-Ressourcen gewähren (
roles/metastore.editor
) -
Uneingeschränkten Zugriff auf alle Dataproc Metastore-Ressourcen gewähren, einschließlich Verwaltung von IAM-Richtlinien (
roles/metastore.admin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält die Berechtigung metastore.services.create
, die zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes erforderlich ist.
Möglicherweise können Sie diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Zugriff mit IAM verwalten.Multiregionale Dataproc Metastore-Dienste
Multiregionale Dataproc Metastore-Dienste speichern Ihre Daten in zwei verschiedenen Regionen und verwenden die beiden Regionen, um Ihre Arbeitslasten auszuführen. Der multiregionale Standort nam7
enthält beispielsweise die Regionen us-central1
und us-east4
.
Ein multiregionaler Dataproc Metastore-Dienst repliziert Metadaten über zwei Regionen und stellt die relevanten Endpunkte für den Zugriff auf den Hive-Metastore bereit. Für gRPC wird ein Endpunkt pro Region bereitgestellt. Für Thrift wird ein Endpunkt pro Subnetzwerk bereitgestellt.
Ein multiregionaler Dataproc Metastore-Dienst bietet eine aktiv-aktive Hochverfügbarkeitsclusterkonfiguration. Diese Konfiguration bedeutet, dass Arbeitslasten beim Ausführen von Jobs auf beide Regionen zugreifen können. Es bietet auch einen Failover-Mechanismus für Ihren Dienst. Wenn beispielsweise der primäre regionale Endpunkt ausfällt, werden Ihre Arbeitslasten automatisch an die sekundäre Region weitergeleitet. Dadurch werden Unterbrechungen Ihrer Dataproc-Jobs vermieden.
Hinweise
Die folgenden Überlegungen gelten für multiregionale Dataproc Metastore-Dienste.
Multiregionale Dienste unterstützen nur den Spanner-Datenbanktyp. Prüfen Sie die Liste der unterstützten Features, bevor Sie den multiregionalen Dienst erstellen.
Multiregionale Dienste unterstützen nur Dataproc Metastore 2-Konfigurationen.
Multiregionale Dienste erstellen Artefakt-Buckets an einem multiregionalen Standort von Cloud Storage.
Nam7
-Buckets werden beispielsweise am multiregionalen StandortUS
erstellt.
Multiregionalen Dataproc Metastore-Dienst erstellen
Auf den folgenden Tabs erfahren Sie, wie Sie einen multiregionalen Dienst mit dem Thrift- oder gRPC-Endpunktprotokoll mit einem Dataproc Metastore-Dienst 2 erstellen.
gRPC
Wenn Sie einen multiregionalen Dienst erstellen, der das gRPC-Endpunktprotokoll verwendet, müssen Sie keine bestimmten Netzwerkeinstellungen festlegen. Das gRPC-Protokoll übernimmt das Netzwerkrouting für Sie.
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.
Klicken Sie in der Navigationsleiste auf + Erstellen.
Das Dialogfeld Metastore-Dienst erstellen wird geöffnet.
Wählen Sie Dataproc Metastore 2 aus.
Wählen Sie im Abschnitt Preise und Kapazität die Option Enterprise Plus – Duale Region aus.
Wählen Sie für das Endpunktprotokoll die Option gRPC* aus.
Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.
Ihr neuer Metastore-Dienst wird auf der Seite Dataproc Metastore angezeigt. Der Status lautet Wird erstellt, bis der Dienst einsatzbereit ist. Anschließend ändert sich der Status in Aktiv. Die Bereitstellung des Dienstes kann einige Minuten dauern.
gcloud-CLI
Führen Sie den folgenden gcloud metastore services create
-Befehl aus, um einen multiregionalen Dataproc Metastore-Dienst zu erstellen. Mit diesem Befehl wird die Dataproc Metastore-Version 3.1.2 erstellt.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=grpc
Ersetzen Sie Folgendes:
SERVICE
: der Name Ihres Dataproc Metastore-Dienstes.MULTI_REGION
: der multiregionale Standort, an dem Sie den Dataproc Metastore-Dienst erstellen.INSTANCE_SIZE
: die Instanzgröße des multiregionalen Dataproc Metastores Beispiel:small
,medium
oderlarge
. Wenn Sie einen Wert fürINSTANCE_SIZE
angeben, geben Sie fürSCALING_FACTOR
keinen Wert an.SCALING_FACTOR
: der Skalierungsfaktor Ihres Dataproc Metastore-Dienstes. Beispiel:0.1
Wenn Sie einen Wert fürSCALING_FACTOR
angeben, geben Sie keinen Wert fürINSTANCE_SIZE
an.
Gebrauchtwaren
Wenn Sie einen multiregionalen Dienst erstellen, der das Thrift-Endpunktprotokoll verwendet, müssen Sie die entsprechenden Subnetzwerkeinstellungen festlegen. In diesem Fall müssen Sie für jedes von Ihnen verwendete VPC-Netzwerk mindestens ein Subnetzwerk aus jeder Region bereitstellen.
Wenn Sie beispielsweise die multiregionale Region nam7
erstellen möchten, müssen Sie die Regionen us-central1
und us-east4
angeben.
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.
Klicken Sie in der Navigationsleiste auf + Erstellen.
Das Dialogfeld Metastore-Dienst erstellen wird geöffnet.
Wählen Sie Dataproc Metastore 2 aus.
Wählen Sie im Abschnitt Preise und Kapazität die Option Enterprise Plus – Duale Region aus.
Weitere Informationen finden Sie unter Preismodelle und Skalierungskonfigurationen.
Geben Sie im Feld Dienstname einen eindeutigen Namen für den Dienst ein.
Informationen zu Namenskonventionen finden Sie unter Namenskonvention für Ressourcen.
Wählen Sie für Endpunktprotokoll die Option Thrift aus.
Geben Sie unter Netzwerkkonfiguration die Subnetzwerke an, aus denen Ihre ausgewählte multiregionale Konfiguration besteht.
Verwenden Sie für die übrigen Dienstkonfigurationsoptionen die bereitgestellten Standardeinstellungen.
Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.
Ihr neuer Metastore-Dienst wird auf der Seite Dataproc Metastore angezeigt. Der Status lautet Wird erstellt, bis der Dienst einsatzbereit ist. Anschließend ändert sich der Status in Aktiv. Die Bereitstellung des Dienstes kann einige Minuten dauern.
gcloud-CLI
Führen Sie den folgenden gcloud metastore services create
-Befehl aus, um einen multiregionalen Dataproc Metastore-Dienst zu erstellen.
Mit diesem Befehl wird die Dataproc Metastore-Version 3.1.2 erstellt.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION1/subnetworks/SUBNET1,projects/PROJECT_ID/regions/LOCATION2/subnetworks/SUBNET2" \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=thrift
Alternativ können Sie Ihre Netzwerkeinstellungen in einer Datei speichern, wie im folgenden Befehl gezeigt.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ --network-config-from-file=NETWORK_CONFIG_FROM_FILE { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=thrift
Ersetzen Sie Folgendes:
SERVICE
: der Name Ihres Dataproc Metastore-Dienstes.MULTI_REGION
: der multiregionale Standort, an dem Sie den Dataproc Metastore-Dienst erstellen.PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Dataproc Metastore-Dienst erstellen.SUBNET1
,SUBNET2
: eine Liste von Subnetzwerken, die eine multiregionale Konfiguration bilden. Sie können die ID, die voll qualifizierte URL oder den relativen Namen des Subnetzwerks verwenden. Sie können bis zu sechs Subnetzwerke angeben.LOCATION1
,LOCATION2
: eine Liste von Standorten, die eine multiregionale Konfiguration bilden. Sie können die ID des Standorts verwenden. Für einen multiregionalen Standort mitnam7
verwenden Sie beispielsweiseus-central1
undus-east4
.NETWORK_CONFIG_FROM_FILE
: Der Pfad zu einer YAML-Datei, die Ihre Netzwerkkonfiguration enthält.INSTANCE_SIZE
: die Instanzgröße des multiregionalen Dataproc Metastores Beispiel:small
,medium
oderlarge
. Wenn Sie einen Wert fürINSTANCE_SIZE
angeben, geben Sie fürSCALING_FACTOR
keinen Wert an.SCALING_FACTOR
: der Skalierungsfaktor Ihres Dataproc Metastore-Dienstes. Beispiel:0.1
Wenn Sie einen Wert fürSCALING_FACTOR
angeben, geben Sie keinen Wert fürINSTANCE_SIZE
an.
REST
Weitere Informationen zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes finden Sie in der Anleitung zum Erstellen eines Dienstes mit Google APIs Explorer.
Zum Konfigurieren eines multiregionalen Dienstes geben Sie die folgenden Informationen in den Network Config
-Objekten an.
"network_config": { "consumers": [ {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1"}, {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2"} ], "scaling_config": { "scaling_factor": SCALING_FACTOR } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die Google Cloud-Projekt-ID des Projekts, das den Dataproc Metastore-Dienst enthält.LOCATION
: die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.SUBNET1
,SUBNET2
: eine Liste von Subnetzwerken, die eine multiregionale Konfiguration bilden. Sie können die ID, die voll qualifizierte URL oder den relativen Namen des Subnetzwerks verwenden. Sie können bis zu fünf Subnetzwerke angeben.SCALING_FACTOR
: der Skalierungsfaktor, den Sie für den Dienst verwenden möchten.
Dataproc Metastore mit einem Dataproc-Cluster verbinden
Auf den folgenden Tabs erfahren Sie, wie Sie einen multiregionalen Dataproc Metastore-Dienst über einen Dataproc-Cluster verbinden.
gRPC
Zum Verbinden eines Dataproc-Clusters wählen Sie den Tab aus, der der verwendeten Version von Dataproc Metastore entspricht.
Dataproc Metastore 3.1.2
Erstellen Sie die folgenden Variablen für den Dataproc-Cluster:
CLUSTER_NAME=CLUSTER_NAME PROJECT_ID=PROJECT_ID MULTI_REGION=MULTI_REGION DATAPROC_IMAGE_VERSION=DATAPROC_IMAGE_VERSION PROJECT=PROJECT SERVICE_ID=SERVICE_ID
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name Ihres Dataproc-Clusters.PROJECT_ID
: Das Google Cloud-Projekt, das den Dataproc-Cluster enthält. Sorgen Sie dafür, dass das verwendete Subnetz die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt hat.MULTI_REGION
: Der multiregionale Google Cloud-Cluster, in dem Sie den Dataproc-Cluster erstellen möchten.DATAPROC_IMAGE_VERSION
: Die Dataproc-Image-Version, die Sie mit Ihrem Dataproc Metastore-Dienst verwenden. Sie müssen eine Image-Version von2.0
oder höher verwenden.PROJECT
: das Projekt, das Ihren Dataproc Metastore-Dienst enthältSERVICE_ID
: die Dienst-ID Ihres Dataproc Metastore-Dienstes.
Führen Sie den folgenden
gcloud dataproc clusters create
-Befehl aus, um den Cluster zu erstellen.--enable-kerberos
ist optional. Verwenden Sie diese Option nur, wenn Sie Kerberos mit Ihrem Cluster verwenden.gcloud dataproc clusters create ${CLUSTER_NAME} \ --project ${PROJECT_ID} \ --region ${MULTI_REGION} \ --image-version ${DATAPROC_IMAGE_VERSION} \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --dataproc-metastore projects/${PROJECT}/locations/${MULTI_REGION}/services/${SERVICE_ID} \ [ --enable-kerberos ]
Dataproc Metastore 2.3.6
Erstellen Sie die folgenden Variablen für Ihren Dataproc Metastore-Dienst:
METASTORE_PROJECT=METASTORE_PROJECT METASTORE_ID=METASTORE_ID MULTI_REGION=MULTI_REGION SUBNET=SUBNET
Ersetzen Sie Folgendes:
METASTORE_PROJECT
: das Google Cloud-Projekt, das den Dataproc Metastore-Dienst enthält.METASTORE_ID
: die Dienst-ID Ihres Dataproc Metastore-Dienstes.MULTI_REGION
: der multiregionale Standort, den Sie für Ihren Dataproc Metastore-Dienst verwenden möchten.SUBNET
ist eines der Subnetze, die Sie für den Dataproc Metastore-Dienst verwenden. Oder ein beliebiges Subnetzwerk im übergeordneten VPC-Netzwerk der Subnetzwerke, die für Ihren Dienst verwendet werden.
Erstellen Sie die folgenden Variablen für den Dataproc-Cluster:
CLUSTER_NAME=CLUSTER_NAME DATAPROC_PROJECT=DATAPROC_PROJECT DATAPROC_REGION=DATAPROC_REGION HIVE_VERSION=HIVE_VERSION IMAGE_VERSION=
r>IMAGE_VERSION Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name Ihres Dataproc-Clusters.DATAPROC_PROJECT
: Das Google Cloud-Projekt, das den Dataproc-Cluster enthält. Sorgen Sie dafür, dass das verwendete Subnetz die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt hat.DATAPROC_REGION
: Die Google Cloud-Region, in der Sie den Dataproc-Cluster erstellen möchten.HIVE_VERSION
: Die Version von Hive, die Ihr Dataproc Metastore-Dienst verwendet.IMAGE_VERSION
: die Dataproc-Image-Version, die Sie mit Ihrem Dataproc Metastore-Dienst verwenden.- Verwenden Sie für Hive Metastore Version 2.0 die Image-Version
1.5
. - Verwenden Sie für Hive Metastore Version 3.1.2 die Image-Version
2.0
.
- Verwenden Sie für Hive Metastore Version 2.0 die Image-Version
Rufen Sie das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes ab und speichern Sie es in einer Variablen.
WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
Einen Dataproc-Cluster erstellen, der mit einem multiregionalen Dataproc Metastore konfiguriert ist.
gcloud dataproc clusters create ${CLUSTER_NAME} \ --project "${DATAPROC_PROJECT}" \ --region ${DATAPROC_REGION} \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --subnet "${SUBNET}" \ --optional-components=DOCKER \ --image-version ${IMAGE_VERSION} \ --metadata "hive-version=${HIVE_VERSION},dpms-name=${DPMS_NAME}" \ --properties "hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=${WAREHOUSE_DIR}" \ --initialization-actions gs://metastore-init-actions/mr-metastore-grpc-proxy/metastore-grpc-proxy.sh
Gebrauchtwaren
Option 1: Bearbeiten der Datei hive-site.xml
- Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes. Sie können einen beliebigen der freigegebenen Endpunkte auswählen.
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie in der Liste der VM-Instanzen in der Zeile des primären Dataproc-Knotens (
.*-m
) auf SSH.In Ihrem Basisverzeichnis auf dem Knoten wird ein Browserfenster geöffnet.
Öffnen Sie die Datei
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Die Ausgabe sollte in etwa so aussehen:
<property> <name>hive.metastore.uris</name> <value>ENDPOINT_URI</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Ersetzen Sie Folgendes:
ENDPOINT_URI
: Der Endpunkt-URI Ihres Dataproc Metastore-Dienstes.WAREHOUSE_DIR
: Der Speicherort Ihres Hive-Warehouse-Verzeichnisses.
Starten Sie HiveServer2 neu:
sudo systemctl restart hive-server2.service
Option 2: gcloud CLI verwenden
Führen Sie den folgenden gcloud dataproc clusters create
-Befehl der gcloud CLI aus.
- Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes. Sie können einen beliebigen der freigegebenen Endpunkte auswählen.
gcloud dataproc clusters create CLUSTER_NAME \ --network NETWORK \ --project PROJECT_ID \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --image-version IMAGE_VERSION \ --properties "hive:hive.metastore.uris=ENDPOINT,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name Ihres Dataproc-Clusters.NETWORK
: Das Google Cloud-Projekt, das den Dataproc-Cluster enthält. Sorgen Sie dafür, dass das verwendete Subnetz die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt hat.PROJECT_ID
: Die Version von Hive, die Ihr Dataproc Metastore-Dienst verwendet.IMAGE_VERSION
: die Dataproc-Image-Version, die Sie mit Ihrem Dataproc Metastore-Dienst verwenden.- Verwenden Sie für Hive Metastore Version 2.0 die Image-Version
1.5
. - Verwenden Sie für Hive Metastore Version 3.1.2 die Image-Version
2.0
.
- Verwenden Sie für Hive Metastore Version 2.0 die Image-Version
ENDPOINT
: der Thrift-Endpunkt, den Ihr Dataproc Metastore verwendet.WAREHOUSE_DIR
: das Warehouse-Verzeichnis Ihres Dataproc Metastores