Multiregionalen Dataproc Metastore-Dienst einrichten

Auf dieser Seite erfahren Sie, wie Sie einen mehrregionalen Dataproc Metastore-Dienst einrichten. Weitere Informationen zur Funktionsweise von mehrregionalen 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 zum Erstellen eines mehrregionalen Dataproc-Metastore-Dienstes zu erhalten. Dabei wird das Prinzip der geringsten Berechtigung angewendet:

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 mehrregionalen Dataproc-Metastore-Dienstes erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu bestimmten Rollen und Berechtigungen für Dataproc Metastore 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.

  • Ein multiregionaler Dataproc Metastore-Dienst repliziert Metadaten in zwei Regionen und stellt die relevanten Endpunkte für den Zugriff auf den Hive Metastore bereit. Für gRPC wird ein Endpunkt pro Region freigegeben. Für Thrift wird ein Endpunkt pro Subnetz freigegeben.

  • Ein multiregionaler Dataproc Metastore-Dienst bietet eine Hochverfügbarkeitsclusterkonfiguration vom Typ „Aktiv/Aktiv“. Bei dieser Konfiguration können Arbeitslasten beim Ausführen von Jobs auf beide Regionen zugreifen. 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 bei Ihren Dataproc-Jobs vermeiden.

Hinweise

Die folgenden Hinweise 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 mehrregionalen Dienst mit einem Dataproc Metastore-Dienst 2 mit dem Thrift- oder gRPC-Endpunktprotokoll erstellen.

gRPC

Wenn Sie einen mehrregionalen Dienst erstellen, der das gRPC-Endpunktprotokoll verwendet, müssen Sie keine bestimmten Netzwerkeinstellungen festlegen. Das gRPC-Protokoll übernimmt das Netzwerk-Routing für Sie.

Console

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

    Dataproc Metastore aufrufen

  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 Bereich Preise und Kapazität die Option Enterprise Plus – biregional aus.

  5. Wählen Sie als Endpunktprotokoll 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 ist Erstellen, bis der Dienst einsatzbereit ist. Sobald 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 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: die Multi-Region, in der Sie Ihren Dataproc Metastore-Dienst erstellen.
  • INSTANCE_SIZE: die Instanzgröße Ihres mehrregionalen Dataproc Metastores. 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.

Sparsamkeit

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

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

Console

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

    Dataproc Metastore aufrufen

  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 Bereich Preise und Kapazität die Option Enterprise Plus – biregional aus.

    Weitere Informationen finden Sie unter Preismodelle und Skalierungskonfigurationen.

  5. Geben Sie im Feld Dienstname einen eindeutigen Namen für den Dienst ein.

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

  6. Wählen Sie als Endpunktprotokoll Thrift aus.

  7. Geben Sie unter Netzwerkkonfiguration die Subnetzwerke an, die Ihre ausgewählte mehrregionale Konfiguration bilden.

  8. Verwenden Sie für die restlichen 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 ist Erstellen, bis der Dienst einsatzbereit ist. Sobald 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 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: die Multi-Region, in der Sie Ihren Dataproc Metastore-Dienst erstellen.
  • PROJECT_ID: die Google Cloud-Projekt-ID, in der Sie Ihren Dataproc Metastore-Dienst erstellen.
  • SUBNET1,SUBNET2: Liste der Subnetzwerke, 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 Unternetzwerke angeben.
  • LOCATION1,LOCATION2: Liste der Standorte, die eine multiregionale Konfiguration bilden. Sie können die ID des Standorts verwenden. Für eine Multiregion nam7 verwenden Sie beispielsweise us-central1 und us-east4.
  • NETWORK_CONFIG_FROM_FILE: Pfad zu einer YAML-Datei mit der Netzwerkkonfiguration
  • INSTANCE_SIZE: die Instanzgröße Ihres mehrregionalen Dataproc Metastores. 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 mehrregionalen Dataproc Metastore-Dienst erstellen möchten, folgen Sie der Anleitung zum Erstellen eines Dienstes mit dem Google APIs Explorer.

Wenn Sie einen multiregionalen Dienst konfigurieren möchten, 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 Ihren Dataproc Metastore-Dienst enthält.
  • LOCATION: die Google Cloud-Region, in der sich Ihr Dataproc Metastore-Dienst befindet.
  • SUBNET1,SUBNET2: Liste der Subnetzwerke, die eine mehrregionale 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 Unternetzwerke angeben.
  • SCALING_FACTOR: den 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 mehrregionalen Dataproc Metastore-Dienst von einem Dataproc-Cluster aus verbinden.

gRPC

Wählen Sie zum Verbinden eines Dataproc-Clusters den Tab aus, der der von Ihnen verwendeten Dataproc Metastore-Version 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. Das von Ihnen verwendete Subnetz muss die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt haben.
    • 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 Imageversion 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. Fügen Sie diese Option nur hinzu, 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: den Speicherort mit mehreren Regionen, den Sie für Ihren Dataproc Metastore-Dienst verwenden möchten.
    • SUBNET: eines der Subnetze, das Sie für Ihren Dataproc Metastore-Dienst verwenden. Oder ein beliebiges Subnetz im übergeordneten VPC-Netzwerk der für Ihren Dienst verwendeten Subnetze.
  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. Das von Ihnen verwendete Subnetz muss die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt haben.
    • DATAPROC_REGION: die Google Cloud-Region, in der Sie Ihren Dataproc-Cluster erstellen möchten.
    • HIVE_VERSION: Die Hive-Version, 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 die 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 mehrregionalen 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

Sparsamkeit

Option 1: hive-site.xml-Datei bearbeiten

  1. Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihres Dataproc Metastore-Dienstes. Sie können einen beliebigen der freigegebenen 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 aus:gcloud dataproc clusters create

  1. 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: der Name Ihres Dataproc-Clusters.
  • NETWORK: das Google Cloud-Projekt, das Ihren Dataproc-Cluster enthält. Das von Ihnen verwendete Subnetz muss die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt haben.
  • PROJECT_ID: Die Hive-Version, 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 die Hive Metastore-Version 3.1.2 die Image-Version 2.0.
  • ENDPOINT: Der Thrift-Endpunkt, den Ihr Dataproc Metastore verwendet.
  • WAREHOUSE_DIR: das Warehouse-Verzeichnis Ihres Dataproc Metastores.

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, sodass Arbeitslasten bei der Ausführung von Jobs auf jede Region zugreifen können. 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 festlegen, wo Sie Metadaten speichern und wo Ihre Hive Metastore-Endpunkte freigegeben werden. Dadurch kann die Leistung bei der Verarbeitung von Arbeitslasten verbessert werden.

Hinweise

Für Dataproc Metastore-Dienste, die mit einer benutzerdefinierten Regionskonfiguration konfiguriert sind, gilt Folgendes:

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

Benutzerdefinierten Regionsservice 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 Schreib-/Leseregionen oder aus einer Schreib-/Leseregion und einer schreibgeschützten Region bestehen.

Console

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

    Dataproc Metastore aufrufen

  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 Bereich Preise und Kapazität die Option Enterprise Plus – biregional aus.

  5. Geben Sie im Feld Dienstname einen eindeutigen Namen für den Dienst ein.

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

    Der Bereich Benutzerdefinierte Regionen wird angezeigt.

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

  8. Verwenden Sie für die restlichen 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 ist Erstellen, bis der Dienst einsatzbereit ist. Sobald er bereit ist, ändert sich der Status in Aktiv. Die Bereitstellung des Dienstes kann einige Minuten dauern.

gcloud

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

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 schreibgeschützte Region, die Teil Ihrer benutzerdefinierten Regionskonfiguration ist.

Weitere Informationen