Multiregionalen Dataproc Metastore-Dienst einrichten

Auf dieser Seite wird beschrieben, wie Sie einen multiregionalen Dataproc Metastore-Dienst einrichten. Weitere Informationen zur Funktionsweise von multiregionalen Dataproc Metastore-Diensten finden Sie unter Dataproc Metastore-Regionen.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes benötigen, basierend auf dem Prinzip der geringsten Berechtigung:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung metastore.services.create, die zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes erforderlich ist.

Sie können 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

Bei multiregionalen Dataproc Metastore-Diensten werden Ihre Daten in zwei verschiedenen Regionen gespeichert und die beiden Regionen werden zum Ausführen Ihrer Arbeitslasten verwendet. Die Multiregion nam7 enthält beispielsweise die Regionen us-central1 und us-east4.

  • Bei einem multiregionalen Dataproc Metastore-Dienst werden Metadaten in zwei Regionen repliziert und die relevanten Endpunkte für den Zugriff auf den Hive-Metastore werden verfügbar gemacht. 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/Aktiv-Clusterkonfiguration für hohe Verfügbarkeit (HA). Diese Konfiguration bedeutet, dass Arbeitslasten beim Ausführen von Jobs auf beide Regionen zugreifen können. Außerdem bietet es einen Failover-Mechanismus für Ihren Dienst. Wenn beispielsweise Ihr primärer regionaler Endpunkt ausfällt, werden Ihre Arbeitslasten automatisch an die sekundäre Region weitergeleitet. So lassen sich Unterbrechungen Ihrer Dataproc-Jobs vermeiden.

Hinweise

Die folgenden Überlegungen gelten für multiregionale Dataproc Metastore-Dienste.

Multiregionalen Dataproc Metastore-Dienst erstellen

Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie einen multiregionalen Dienst mit dem Thrift- oder gRPC-Endpunktprotokoll und 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

  1. Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.

    Zu Dataproc Metastore

  2. Klicken Sie in der Navigationsleiste auf + Erstellen.

    Das Dialogfeld Metastore-Dienst erstellen wird geöffnet.

  3. Wählen Sie Dataproc Metastore 2 aus.

  4. Wählen Sie im Abschnitt Preise und Kapazität die Option Enterprise Plus – biregional aus.

  5. Wählen Sie für das Endpunktprotokoll die Option gRPC aus.

  6. Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.

    Der neue Metastore-Dienst wird auf der Seite Dataproc Metastore angezeigt. Der Status Wird erstellt wird angezeigt, bis der Dienst einsatzbereit ist. Wenn er bereit ist, ä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 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: die Multiregion, in der Sie Ihren Dataproc Metastore-Dienst erstellen.
  • INSTANCE_SIZE: die Instanzgröße Ihres multiregionalen Dataproc Metastore. Beispiel: small, medium oder large. Wenn Sie einen Wert für INSTANCE_SIZE angeben, geben Sie keinen Wert für SCALING_FACTOR an.
  • SCALING_FACTOR: der Skalierungsfaktor Ihres Dataproc Metastore-Dienstes. Beispiel: 0.1 Wenn Sie einen Wert für SCALING_FACTOR angeben, geben Sie keinen Wert für INSTANCE_SIZE an.

Thrift

Wenn Sie einen multiregionalen Dienst erstellen, der das Thrift-Endpunktprotokoll verwendet, müssen Sie die entsprechenden Subnetzeinstellungen festlegen. In diesem Fall müssen Sie für jedes VPC-Netzwerk, das Sie verwenden, mindestens ein Subnetz aus jeder Region angeben.

Wenn Sie beispielsweise die Multiregion nam7 erstellen möchten, müssen Sie sowohl die Regionen us-central1 als auch us-east4 angeben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.

    Zu Dataproc Metastore

  2. Klicken Sie in der Navigationsleiste auf + Erstellen.

    Das Dialogfeld Metastore-Dienst erstellen wird geöffnet.

  3. Wählen Sie Dataproc Metastore 2 aus.

  4. Wählen Sie im Abschnitt Preise und Kapazität die Option Enterprise Plus – biregional aus.

    Weitere Informationen finden Sie unter Preismodelle und Skalierungskonfigurationen.

  5. Geben Sie im Feld Name des Dienstkontos einen eindeutigen Namen für den Dienst ein.

    Informationen zu Namenskonventionen finden Sie unter Namenskonvention für Ressourcen.

  6. Wählen Sie für das Endpunktprotokoll die Option Thrift aus.

  7. Geben Sie unter Network Config die Subnetzwerke an, die Ihre ausgewählte multiregionale Konfiguration bilden.

  8. Übernehmen Sie für die verbleibenden Optionen der Dienstkonfiguration die angegebenen Standardeinstellungen.

  9. Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.

    Der neue Metastore-Dienst wird auf der Seite Dataproc Metastore angezeigt. Der Status Wird erstellt wird angezeigt, bis der Dienst einsatzbereit ist. Wenn er bereit ist, ä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 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: die Multiregion, in der Sie Ihren Dataproc Metastore-Dienst erstellen.
  • PROJECT_ID: die Google Cloud Projekt-ID, in der Sie den Dataproc Metastore-Dienst erstellen.
  • SUBNET1,SUBNET2: Eine Liste von Subnetzen, die eine multiregionale Konfiguration bilden. Sie können die ID, die vollständig 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 eine nam7-Multiregion verwenden Sie beispielsweise us-central1 und us-east4.
  • NETWORK_CONFIG_FROM_FILE: Der Pfad zu einer YAML-Datei, die Ihre Netzwerkkonfiguration enthält.
  • INSTANCE_SIZE: die Instanzgröße Ihres multiregionalen Dataproc Metastore. Beispiel: small, medium oder large. Wenn Sie einen Wert für INSTANCE_SIZE angeben, geben Sie keinen Wert für SCALING_FACTOR an.
  • SCALING_FACTOR: der Skalierungsfaktor Ihres Dataproc Metastore-Dienstes. Beispiel: 0.1 Wenn Sie einen Wert für SCALING_FACTOR angeben, geben Sie keinen Wert für INSTANCE_SIZE an.

REST

Wenn Sie einen multiregionalen Dataproc Metastore-Dienst erstellen möchten, folgen Sie der Anleitung zum Erstellen eines Dienstes mit dem Google APIs Explorer.

Geben Sie zum Konfigurieren eines multiregionalen Dienstes 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 Ihren Dataproc Metastore-Dienst enthält.
  • LOCATION: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.
  • SUBNET1,SUBNET2: Eine Liste von Subnetzwerken, die eine multiregionale Konfiguration bilden. Sie können die ID, die vollständig 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

Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie einen multiregionalen Dataproc Metastore-Dienst über einen Dataproc-Cluster verbinden.

gRPC

Wenn Sie einen Dataproc-Cluster verbinden möchten, wählen Sie den Tab aus, der der von Ihnen verwendeten Version von Dataproc Metastore entspricht.

Dataproc Metastore 3.1.2

  1. Erstellen Sie die folgenden Variablen für Ihren 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: der Name Ihres Dataproc-Clusters.
    • PROJECT_ID: Das Google Cloud Projekt, das Ihren Dataproc-Cluster enthält. Prüfen Sie, ob das von Ihnen verwendete Subnetz die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt hat.
    • MULTI_REGION: die Google Cloud Multi-Region, in der Sie Ihren 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 von 2.0 oder höher verwenden.
    • PROJECT: das Projekt, das Ihren Dataproc Metastore-Dienst enthält.
    • SERVICE_ID: Die Dienst-ID Ihres Dataproc Metastore-Dienstes.
  2. Führen Sie den folgenden gcloud dataproc clusters create-Befehl aus, um den Cluster zu erstellen. --enable-kerberos ist optional. Nehmen Sie diese Option nur auf, 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

  1. 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 Ihren Dataproc Metastore-Dienst enthält.
    • METASTORE_ID: Die Dienst-ID Ihres Dataproc Metastore-Dienstes.
    • MULTI_REGION: Der Multi-Region-Standort, den Sie für Ihren Dataproc Metastore-Dienst verwenden möchten.
    • SUBNET: eines der Subnetze, die Sie für Ihren Dataproc Metastore-Dienst verwenden. Oder ein beliebiges Subnetzwerk im übergeordneten VPC-Netzwerk der Subnetzwerke, die für Ihren Dienst verwendet werden.
  2. Erstellen Sie die folgenden Variablen für Ihren 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: der Name Ihres Dataproc-Clusters.
    • DATAPROC_PROJECT: Das Google Cloud Projekt, das Ihren Dataproc-Cluster enthält. Prüfen Sie, ob das von Ihnen 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 von Ihrem Dataproc Metastore-Dienst verwendet wird.
    • 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.
  3. 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])")
  4. Erstellen Sie einen Dataproc-Cluster, 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

Thrift

Option 1: Datei „hive-site.xml“ bearbeiten

  1. Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes. Sie können einen der bereitgestellten Endpunkte auswählen.
  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
  3. Klicken Sie in der Liste der VM-Instanzen in der Zeile des primären Dataproc-Knotens (.*-m) auf SSH.

    Im Stammverzeichnis des Knotens wird ein Browserfenster geöffnet.

  4. Ö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:

  5. Starten Sie HiveServer2 neu:

    sudo systemctl restart hive-server2.service
    

Option 2: gcloud CLI verwenden

Führen Sie den folgenden gcloud CLI-Befehl gcloud dataproc clusters create aus.

  1. Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes. Sie können einen der bereitgestellten 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: der Name Ihres Dataproc-Clusters.
  • NETWORK: Das Google Cloud Projekt, das Ihren Dataproc-Cluster enthält. Prüfen Sie, ob das von Ihnen verwendete Subnetz die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt hat.
  • PROJECT_ID: Die Version von Hive, die von Ihrem Dataproc Metastore-Dienst verwendet wird.
  • 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.
  • ENDPOINT: Der Thrift-Endpunkt, der von Ihrem Dataproc Metastore verwendet wird.
  • WAREHOUSE_DIR: Das Warehouse-Verzeichnis Ihres Dataproc Metastore.

Benutzerdefinierte Regionskonfigurationen

Sie können Dataproc Metastore-Dienste so konfigurieren, dass sie eine benutzerdefinierte Regionskonfiguration verwenden.

Mit einer benutzerdefinierten Regionskonfiguration kann Ihr Dienst Arbeitslasten aus zwei separaten Regionen ausführen. Dies bietet Redundanz über Regionen hinweg. Arbeitslasten können also beim Ausführen von Jobs auf beide Regionen zugreifen. Außerdem bietet es einen Failover-Mechanismus für Ihren Dienst. Wenn beispielsweise einer der regionalen Endpunkte ausfällt, werden Ihre Arbeitslasten automatisch an die andere Region weitergeleitet. So lassen sich Unterbrechungen Ihrer Arbeitslasten und Jobs vermeiden.

Mit benutzerdefinierten Regionskonfigurationen können Sie auch steuern, wo Sie Metadaten speichern und wo Sie Ihre Hive Metastore-Endpunkte verfügbar machen. Dadurch kann die Leistung bei der Verarbeitung von Arbeitslasten verbessert werden.

Hinweise

Die folgenden Überlegungen gelten für Dataproc Metastore-Dienste, die mit einer benutzerdefinierten Regionskonfiguration konfiguriert sind:

  • Einschränkungen für Regionen/Paarungen: Nicht alle Regionen und Kombinationen sind zulässig.
  • Einschränkungen für schreibgeschützte Regionen: In schreibgeschützten Regionen sind keine Schreibvorgänge möglich. Wenn eine schreibgeschützte Region ausgewählt wird und die Region mit Lese-/Schreibzugriff nicht erreichbar ist, kann der Schreibvorgang nicht verarbeitet werden.
  • Unveränderlichkeit der Konfiguration: Nach der Festlegung kann die Regionskonfiguration nicht mehr geändert werden.
  • Nur US-Stack: Benutzerdefinierte Dual-Regionen unterstützen nur den US-Stack und sind auf die US-Grenze beschränkt.

Benutzerdefinierten regionalen Dienst erstellen

Wenn Sie eine benutzerdefinierte Region einrichten möchten, wählen Sie beim Erstellen des Dienstes zwei benachbarte Regionen aus. Diese Kombination kann entweder aus zwei Regionen mit Lese-/Schreibzugriff oder aus einer Region mit Lese-/Schreibzugriff und einer schreibgeschützten Region bestehen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.

    Zu Dataproc Metastore

  2. Klicken Sie in der Navigationsleiste auf + Erstellen.

    Das Dialogfeld Metastore-Dienst erstellen wird geöffnet.

  3. Wählen Sie Dataproc Metastore 2 aus.

  4. Wählen Sie im Abschnitt Preise und Kapazität die Option Enterprise Plus – biregional aus.

  5. Geben Sie im Feld Name des Dienstkontos einen eindeutigen Namen für den Dienst ein.

  6. Wählen Sie als Speicherort der Daten die Option USA (Kontinent) aus.

    Der Abschnitt Benutzerdefinierte Regionen wird angezeigt.

  7. Wählen Sie unter Benutzerdefinierte Regionen eine Schreib-/Leseregion und eine schreibgeschützte Region aus.

  8. Übernehmen Sie für die verbleibenden Optionen der Dienstkonfiguration die angegebenen Standardeinstellungen.

  9. Klicken Sie auf Senden, um den Dienst zu erstellen und zu starten.

    Der neue Metastore-Dienst wird auf der Seite Dataproc Metastore angezeigt. Der Status Wird erstellt wird angezeigt, bis der Dienst einsatzbereit ist. Wenn er bereit ist, ändert sich der Status in Aktiv. Die Bereitstellung des Dienstes kann einige Minuten dauern.

gcloud

Führen Sie den folgenden gcloud CLI-Befehl gcloud beta metastore services create aus, um einen Dataproc Metastore-Dienst mit benutzerdefinierten Regionen zu erstellen.

gcloud beta metastore services create SERVICE \
  --read-write-regions

Ersetzen Sie Folgendes:

  • SERVICE: der Name Ihres Dataproc Metastore-Dienstes.
  • READ_WRITE_REGIONS: Eine unterstützte Lese-/Schreibregion, die Teil Ihrer benutzerdefinierten Regionskonfiguration ist.
  • READ_ONLY_REGIONS: Eine unterstützte Region mit Lesezugriff, die Teil Ihrer benutzerdefinierten Regionskonfiguration ist.

Weitere Informationen