Multiregionalen Dataproc Metastore-Dienst einrichten

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

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:

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.

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

  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 – Duale Region 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.

    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 oder large. Wenn Sie einen Wert für INSTANCE_SIZE angeben, geben Sie für SCALING_FACTOR keinen Wert 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.

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

  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 – Duale Region 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 für Endpunktprotokoll die Option Thrift aus.

  7. Geben Sie unter Netzwerkkonfiguration die Subnetzwerke an, aus denen Ihre ausgewählte multiregionale Konfiguration besteht.

  8. Verwenden Sie für die übrigen Dienstkonfigurationsoptionen die bereitgestellten Standardeinstellungen.

  9. 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 mit nam7 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 des multiregionalen Dataproc Metastores Beispiel: small, medium oder large. Wenn Sie einen Wert für INSTANCE_SIZE angeben, geben Sie für SCALING_FACTOR keinen Wert 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

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

  1. 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 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. 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

  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 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.
  2. 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.
  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. 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

  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.

    In Ihrem Basisverzeichnis auf dem Knoten 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 dataproc clusters create-Befehl der gcloud CLI aus.

  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 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.
  • ENDPOINT: der Thrift-Endpunkt, den Ihr Dataproc Metastore verwendet.
  • WAREHOUSE_DIR: das Warehouse-Verzeichnis Ihres Dataproc Metastores

Weitere Informationen