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

Um die Berechtigung zu erhalten, die Sie zum Erstellen eines multiregionalen Dataproc Metastore-Dienstes benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt 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 mehrregionalen 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

Multiregionale Dataproc Metastore-Dienste speichern Ihre Daten in zwei verschiedenen Regionen und verwenden Sie die beiden Regionen, um Ihre Arbeitslasten auszuführen. Die Multiregion nam7 enthält beispielsweise die Regionen us-central1 und us-east4.

  • Ein multiregionaler Dataproc Metastore-Dienst repliziert Metadaten auf zwei Regionen verteilt und stellt die relevanten Endpunkte für den Zugriff auf die Hive zur Verfügung. Metastore. Für gRPC wird ein Endpunkt pro Region freigegeben. Für Thrift gibt es eine Endpunkt pro Subnetzwerk bereitgestellt wird.

  • Ein multiregionaler Dataproc Metastore-Dienst bietet ein Konfiguration eines aktiv-aktiven Hochverfügbarkeitsclusters (HA). 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 zum Beispiel primärer regionaler Endpunkt ausfällt, werden Ihre Arbeitslasten automatisch weitergeleitet in die sekundäre Region. So vermeiden Sie Unterbrechungen von Dataproc Jobs.

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 multiregionalen Dienst erstellen mit dem Thrift- oder gRPC-Endpunktprotokoll, mit einem Dataproc Metastore-Dienst 2.

gRPC

Beim Erstellen eines multiregionalen Dienstes, der das gRPC-Endpunktprotokoll verwendet, keine spezifischen Einstellungen für das Werbenetzwerk vornehmen. Das gRPC-Protokoll verarbeitet das Netzwerkrouting für Sie.

Console

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

    Gehe 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 als 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 lautet Wird erstellt, 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 Dataproc Metastore-Multi-Regional-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-Dienst
  • 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.

Gebrauchtwaren

Wenn Sie einen multiregionalen Dienst erstellen, der das Thrift-Endpunktprotokoll verwendet, müssen die entsprechenden Subnetzwerkeinstellungen 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 den Dataproc Metastore auf. Seite.

    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, aus denen sich das ausgewählte multiregionale Konfiguration.

  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 lautet Wird erstellt, 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 Dataproc Metastore-Multi-Regional-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

Sie können Ihre Netzwerkeinstellungen auch in einer Datei speichern, wie in der folgenden Befehl.

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-Dienst
  • 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: eine Liste von 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 Ihrer Netzwerkkonfiguration.
  • INSTANCE_SIZE: die Instanzgröße Ihres multiregionalen Dataproc Metastores. Beispiel: small, medium oder large. Wenn Sie einen Wert für INSTANCE_SIZE angeben, geben Sie Geben Sie einen 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

Informationen zum Erstellen eines multiregionalen Dataproc Metastores folgen Sie der Anleitung zum Erstellen eines Dienstes mithilfe von 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 Ihr In dem sich der 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 Subnetzwerke angeben.
  • SCALING_FACTOR: der Skalierungsfaktor die Sie für den Dienst nutzen 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

Um einen Dataproc-Cluster zu verbinden, wählen Sie den Tab für die Version von Dataproc Metastore, die Sie verwenden.

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 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: das Dataproc-Image Version, die Sie mit Ihrem Dataproc Metastore verwenden Service. Sie müssen eine Image-Version von 2.0 oder höher verwenden.
    • PROJECT: das Projekt, das die Dataproc Metastore-Dienst
    • 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 Service-ID Ihres Dataproc Metastore-Dienst
    • MULTI_REGION: den Speicherort mit mehreren Regionen, den Sie für Ihren Dataproc Metastore-Dienst verwenden möchten.
    • SUBNET: eines der von Ihnen verwendeten Subnetze für Ihren Dataproc Metastore-Dienst. 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 Cluster.
    • DATAPROC_PROJECT: das Google Cloud-Projekt, das enthält Ihren Dataproc-Cluster. Das 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 Version von Hive, die von Ihrem Dataproc Metastore-Dienst verwendet.
    • IMAGE_VERSION: das Dataproc-Image Version, die Sie mit Ihrem Dataproc Metastore-Dienst verwenden.
      • Verwenden Sie für die 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. Dataproc-Cluster mit multiregional konfiguriertem Cluster erstellen Dataproc Metastore

    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: Datei hive-site.xml bearbeiten

  1. Suchen Sie den Endpunkt-URI und das Warehouse-Verzeichnis Ihrer Dataproc Metastore-Dienst 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 auf SSH in der Zeile des Primärer Dataproc-Knoten (.*-m)

    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 Ihrer Dataproc Metastore-Dienst 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 Cluster.
  • NETWORK: das Google Cloud-Projekt, das Ihren Dataproc-Cluster enthält. Stellen Sie sicher, dass das Subnetz, using verfügt über die entsprechenden Berechtigungen für den Zugriff auf dieses Projekt.
  • PROJECT_ID: die Version von Hive, die von Ihrem Dataproc Metastore-Dienst verwendet.
  • IMAGE_VERSION: Die Dataproc-Image-Version, die Sie mit Ihrem Dataproc Metastore-Dienst verwenden.
    • Verwenden Sie für die 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, den Ihr Dataproc Metastore verwendet.
  • WAREHOUSE_DIR: das Warehouse-Verzeichnis Ihrer 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 sorgt für regionsübergreifende Redundanz, sodass Arbeitslasten beim Ausführen von Jobs auf beide Regionen zugreifen Außerdem bietet es einen Failover-Mechanismus für Ihren Dienst. Fällt z. B. einer der regionalen Endpunkte aus, Arbeitslasten werden 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

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

  • Einschränkungen für Regionen/Kombinationen: 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: Nachdem die Regionskonfiguration einmal festgelegt wurde, kann sie nicht mehr geändert.
  • Nur US-Stack: Benutzerdefinierte Dual-Regionen unterstützen nur den US-Stack und sind auf die USA beschränkt.

Benutzerdefinierten Regionsdienst erstellen

Wählen Sie zum Einrichten einer benutzerdefinierten Region beim Erstellen der Region zwei benachbarte Regionen aus. Service. 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 – Dual Region 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 Wird erstellt, 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 SERVICE \
  --read-write-regions

Ersetzen Sie Folgendes:

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

Weitere Informationen