Configurer un service Dataproc Metastore multirégional

Cette page vous explique comment configurer un service Dataproc Metastore multirégional. Pour en savoir plus sur le fonctionnement des services Dataproc Metastore multirégionaux, consultez la section Régions Dataproc Metastore.

Avant de commencer

Rôles requis

Pour obtenir l'autorisation dont vous avez besoin pour créer un service Dataproc Metastore multirégional, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet, conformément au principe du moindre privilège:

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation metastore.services.create, qui est requise pour créer un service Dataproc Metastore multirégional.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et les autorisations spécifiques du métastore Dataproc, consultez Gérer les accès avec IAM.

À propos des services Dataproc Metastore multirégionaux

Les services Dataproc Metastore multirégionaux stockent vos données dans deux régions différentes et utilisent ces deux régions pour exécuter vos charges de travail. Par exemple, l'ensemble multirégional nam7 contient les régions us-central1 et us-east4.

  • Un service Dataproc Metastore multirégional réplique les métadonnées dans deux régions et expose les points de terminaison pertinents pour accéder au métastore Hive. Pour gRPC, un point de terminaison par région est exposé. Pour Thrift, un point de terminaison par sous-réseau est exposé.

  • Un service Dataproc Metastore multirégional fournit une configuration de cluster haute disponibilité (HA) en mode actif/actif. Cette configuration signifie que les charges de travail peuvent accéder à l'une ou l'autre région lors de l'exécution de tâches. Il fournit également un mécanisme de basculement pour votre service. Par exemple, si votre point de terminaison régional principal tombe en panne, vos charges de travail sont automatiquement acheminées vers la région secondaire. Cela permet d'éviter les perturbations de vos tâches Dataproc.

Remarques

Les considérations suivantes s'appliquent aux services Dataproc Metastore multirégionaux.

Créer un service Dataproc Metastore multirégional

Choisissez l'un des onglets suivants pour découvrir comment créer un service multirégional à l'aide du protocole de point de terminaison Thrift ou gRPC, avec un service Dataproc Metastore 2.

gRPC

Lorsque vous créez un service multirégional qui utilise le protocole de point de terminaison gRPC, vous n'avez pas besoin de définir de paramètres réseau spécifiques. Le protocole gRPC gère le routage réseau à votre place.

Console

  1. Dans la console Google Cloud, accédez à la page Dataproc Metastore.

    Accéder à Dataproc Metastore

  2. Dans la barre de navigation, cliquez sur + Créer.

    La boîte de dialogue Créer un service de metastore s'ouvre.

  3. Sélectionnez Dataproc Metastore 2.

  4. Dans la section Tarifs et capacité, sélectionnez Enterprise Plus – Birégional.

  5. Pour le protocole du point de terminaison, sélectionnez gRPC.

  6. Pour créer et démarrer le service, cliquez sur Envoyer.

    Votre nouveau service de métastore s'affiche sur la page Dataproc Metastore. L'état indique Création jusqu'à ce que le service soit prêt à être utilisé. Une fois l'opération terminée, l'état passe à Actif. Le provisionnement du service peut prendre quelques minutes.

CLI gcloud

Pour créer un service multirégional Dataproc Metastore, exécutez la commande gcloud metastore services create suivante. Cette commande crée Dataproc Metastore version 3.1.2.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=grpc

Remplacez les éléments suivants :

  • SERVICE: nom de votre service Dataproc Metastore.
  • MULTI_REGION: la multirégion dans laquelle vous créez votre service Dataproc Metastore.
  • INSTANCE_SIZE: taille de l'instance de votre Dataproc Metastore multirégional. Par exemple, small, medium ou large. Si vous spécifiez une valeur pour INSTANCE_SIZE, ne spécifiez pas de valeur pour SCALING_FACTOR.
  • SCALING_FACTOR: facteur de scaling de votre service Dataproc Metastore. Par exemple, 0.1. Si vous spécifiez une valeur pour SCALING_FACTOR, ne spécifiez pas de valeur pour INSTANCE_SIZE.

Économie

Lorsque vous créez un service multirégional qui utilise le protocole de point de terminaison Thrift, vous devez définir les paramètres de sous-réseau appropriés. Dans ce cas, pour chaque réseau VPC que vous utilisez, vous devez fournir au moins un sous-réseau de chaque région.

Par exemple, pour créer l'emplacement multirégional nam7, vous devez fournir les régions us-central1 et us-east4.

Console

  1. Dans la console Google Cloud, accédez à la page Dataproc Metastore.

    Accéder à Dataproc Metastore

  2. Dans la barre de navigation, cliquez sur + Créer.

    La boîte de dialogue Créer un service de metastore s'ouvre.

  3. Sélectionnez Dataproc Metastore 2.

  4. Dans la section Tarifs et capacité, sélectionnez Enterprise Plus – Birégional.

    Pour en savoir plus, consultez les forfaits et configurations de scaling.

  5. Dans le champ Nom du service, saisissez un nom unique pour votre service.

    Pour en savoir plus sur les conventions d'attribution de noms, consultez la section Convention d'attribution de noms aux ressources.

  6. Pour le protocole du point de terminaison, sélectionnez Thrift.

  7. Dans Network Config (Configuration réseau), indiquez les sous-réseaux qui constituent la configuration multirégionale de votre choix.

  8. Pour les autres options de configuration du service, utilisez les valeurs par défaut fournies.

  9. Pour créer et démarrer le service, cliquez sur Envoyer.

    Votre nouveau service de métastore s'affiche sur la page Dataproc Metastore. L'état indique Création jusqu'à ce que le service soit prêt à être utilisé. Une fois l'opération terminée, l'état passe à Actif. Le provisionnement du service peut prendre quelques minutes.

CLI gcloud

Pour créer un service multirégional Dataproc Metastore, exécutez la commande gcloud metastore services create suivante. Cette commande crée Dataproc Metastore version 3.1.2.

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

Vous pouvez également stocker vos paramètres réseau dans un fichier, comme indiqué dans la commande suivante.

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

Remplacez les éléments suivants :

  • SERVICE: nom de votre service Dataproc Metastore.
  • MULTI_REGION: région multirégionale dans laquelle vous créez votre service Dataproc Metastore.
  • PROJECT_ID: ID du projet Google Cloud dans lequel vous créez votre service Dataproc Metastore.
  • SUBNET1,SUBNET2: liste des sous-réseaux qui forment une configuration multirégionale. Vous pouvez utiliser l'ID, l'URL complète ou le nom relatif du sous-réseau. Vous pouvez spécifier jusqu'à six sous-réseaux.
  • LOCATION1,LOCATION2 : liste des emplacements qui forment une configuration multirégionale. Vous pouvez utiliser l'ID de l'emplacement. Par exemple, pour une zone multirégionale nam7, vous utilisez us-central1 et us-east4.
  • NETWORK_CONFIG_FROM_FILE: chemin d'accès à un fichier YAML contenant votre configuration réseau.
  • INSTANCE_SIZE: taille de l'instance de votre Dataproc Metastore multirégional. Par exemple, small, medium ou large. Si vous spécifiez une valeur pour INSTANCE_SIZE, ne spécifiez pas de valeur pour SCALING_FACTOR.
  • SCALING_FACTOR: facteur de scaling de votre service Dataproc Metastore. Par exemple, 0.1. Si vous spécifiez une valeur pour SCALING_FACTOR, ne spécifiez pas de valeur pour INSTANCE_SIZE.

REST

Pour savoir comment créer un service Dataproc Metastore multirégional, suivez les instructions pour créer un service à l'aide de l'Google APIs Explorer.

Pour configurer un service multirégional, fournissez les informations suivantes dans les objets Network Config.

  "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
    }
  }

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud contenant votre service Dataproc Metastore.
  • LOCATION: région Google Cloud dans laquelle se trouve votre service Dataproc Metastore.
  • SUBNET1,SUBNET2: liste des sous-réseaux qui forment une configuration multirégionale. Vous pouvez utiliser l'ID, l'URL complète ou le nom relatif du sous-réseau. Vous pouvez spécifier jusqu'à cinq sous-réseaux.
  • SCALING_FACTOR: facteur de scaling que vous souhaitez utiliser pour le service.

Connecter Dataproc Metastore à un cluster Dataproc

Choisissez l'un des onglets suivants pour découvrir comment connecter un service Dataproc Metastore multirégional à partir d'un cluster Dataproc.

gRPC

Pour connecter un cluster Dataproc, sélectionnez l'onglet correspondant à la version de Dataproc Metastore que vous utilisez.

Dataproc Metastore 3.1.2

  1. Créez les variables suivantes pour votre cluster Dataproc:

    CLUSTER_NAME=CLUSTER_NAME
    PROJECT_ID=PROJECT_ID
    MULTI_REGION=MULTI_REGION
    DATAPROC_IMAGE_VERSION=DATAPROC_IMAGE_VERSION
    PROJECT=PROJECT
    SERVICE_ID=SERVICE_ID

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom de votre cluster Dataproc.
    • PROJECT_ID: projet Google Cloud contenant votre cluster Dataproc. Assurez-vous que le sous-réseau que vous utilisez dispose des autorisations appropriées pour accéder à ce projet.
    • MULTI_REGION: multirégion Google Cloud dans laquelle vous souhaitez créer votre cluster Dataproc.
    • DATAPROC_IMAGE_VERSION: version de l'image Dataproc que vous utilisez avec votre service Dataproc Metastore. Vous devez utiliser une version d'image de 2.0 ou ultérieure.
    • PROJECT: projet contenant votre service Dataproc Metastore.
    • SERVICE_ID: ID de service de votre service Dataproc Metastore.
  2. Pour créer votre cluster, exécutez la commande gcloud dataproc clusters create suivante. --enable-kerberos est facultatif. N'incluez cette option que si vous utilisez kerberos avec votre cluster.

    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. Créez les variables suivantes pour votre service Dataproc Metastore:

    METASTORE_PROJECT=METASTORE_PROJECT
    METASTORE_ID=METASTORE_ID
    MULTI_REGION=MULTI_REGION
    SUBNET=SUBNET

    Remplacez les éléments suivants :

    • METASTORE_PROJECT: projet Google Cloud contenant votre service Dataproc Metastore.
    • METASTORE_ID: ID de service de votre service Dataproc Metastore.
    • MULTI_REGION: emplacement multirégional que vous souhaitez utiliser pour votre service Dataproc Metastore.
    • SUBNET: l'un des sous-réseaux que vous utilisez pour votre service Dataproc Metastore. ou tout sous-réseau du réseau VPC parent des sous-réseaux utilisés pour votre service.
  2. Créez les variables suivantes pour votre cluster Dataproc:

    CLUSTER_NAME=CLUSTER_NAME
    DATAPROC_PROJECT=DATAPROC_PROJECT
    DATAPROC_REGION=DATAPROC_REGION
    HIVE_VERSION=HIVE_VERSION
    IMAGE_VERSION=r>IMAGE_VERSION

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom de votre cluster Dataproc.
    • DATAPROC_PROJECT: projet Google Cloud contenant votre cluster Dataproc. Assurez-vous que le sous-réseau que vous utilisez dispose des autorisations appropriées pour accéder à ce projet.
    • DATAPROC_REGION: région Google Cloud dans laquelle vous souhaitez créer votre cluster Dataproc.
    • HIVE_VERSION: version de Hive utilisée par votre service Dataproc Metastore.
    • IMAGE_VERSION: version de l'image Dataproc que vous utilisez avec votre service Dataproc Metastore.
      • Pour la version 2.0 de Hive Metastore, utilisez la version d'image 1.5.
      • Pour la version 3.1.2 de Hive Metastore, utilisez la version d'image 2.0.
  3. Récupérez le répertoire de l'entrepôt de votre service Dataproc Metastore et stockez-le dans une variable.

    WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
  4. Créez un cluster Dataproc configuré avec un Dataproc Metastore multirégional.

    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

Économie

Option 1: Modifier le fichier hive-site.xml

  1. Recherchez l'URI du point de terminaison et le répertoire de l'entrepôt de votre service Dataproc Metastore. Vous pouvez choisir l'un des points de terminaison exposés.
  2. Dans la console Google Cloud, accédez à la page Instances de VM.
  3. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne du nœud principal Dataproc (.*-m).

    Une fenêtre de navigateur s'ouvre dans votre répertoire de base sur le nœud.

  4. Ouvrez le fichier /etc/hive/conf/hive-site.xml.

    sudo vim /etc/hive/conf/hive-site.xml
    

    Un résultat semblable aux lignes suivantes s'affiche:

    <property>
        <name>hive.metastore.uris</name>
        <value>ENDPOINT_URI</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>WAREHOUSE_DIR</value>
    </property>
    

    Remplacez les éléments suivants :

  5. Redémarrez HiveServer2.

    sudo systemctl restart hive-server2.service
    

Option 2: Utiliser gcloud CLI

Exécutez la commande gcloud dataproc clusters create gcloud CLI suivante.

  1. Recherchez l'URI du point de terminaison et le répertoire de l'entrepôt de votre service Dataproc Metastore. Vous pouvez choisir l'un des points de terminaison exposés.
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"

Remplacez les éléments suivants :

  • CLUSTER_NAME: nom de votre cluster Dataproc.
  • NETWORK: projet Google Cloud contenant votre cluster Dataproc. Assurez-vous que le sous-réseau que vous utilisez dispose des autorisations appropriées pour accéder à ce projet.
  • PROJECT_ID: version de Hive utilisée par votre service Dataproc Metastore.
  • IMAGE_VERSION: version de l'image Dataproc que vous utilisez avec votre service Dataproc Metastore.
    • Pour la version 2.0 de Hive Metastore, utilisez la version d'image 1.5.
    • Pour la version 3.1.2 de Hive Metastore, utilisez la version d'image 2.0.
  • ENDPOINT: point de terminaison Thrift utilisé par votre Dataproc Metastore.
  • WAREHOUSE_DIR: répertoire de l'entrepôt de votre Dataproc Metastore.

Configurations de région personnalisées

Vous pouvez configurer les services Dataproc Metastore pour qu'ils utilisent une configuration de région personnalisée.

Une configuration de région personnalisée permet à votre service d'exécuter des charges de travail à partir de deux régions distinctes. Cela permet une redondance entre les régions, ce qui signifie que les charges de travail peuvent accéder à l'une ou l'autre région lors de l'exécution de tâches. Il fournit également un mécanisme de basculement pour votre service. Par exemple, si l'un des points de terminaison régionaux tombe en panne, vos charges de travail sont automatiquement redirigées vers l'autre région. Cela permet d'éviter les perturbations de vos charges de travail et de vos tâches.

Les configurations de région personnalisées vous permettent également de contrôler l'emplacement où vous stockez les métadonnées et où exposer vos points de terminaison Hive Metastore. Cela peut améliorer les performances lors du traitement des charges de travail.

Remarques

Les considérations suivantes s'appliquent aux services Dataproc Metastore configurés avec une configuration de région personnalisée:

  • Restrictions régionales/d'association: toutes les régions et combinaisons ne sont pas autorisées.
  • Limites des régions en lecture seule: les régions en lecture seule ne peuvent pas accepter d'opérations d'écriture. Si une région en lecture seule est choisie et que la région en lecture/écriture est inaccessible, l'écriture ne peut pas être traitée.
  • Immutabilité de la configuration: une fois définie, la configuration de la région ne peut plus être modifiée.
  • Pile États-Unis uniquement: les régions duales personnalisées ne sont compatibles qu'avec la pile US et sont limitées à la frontière des États-Unis.

Créer un service de région personnalisé

Pour configurer une région personnalisée, choisissez deux régions adjacentes lorsque vous créez votre service. Cette combinaison peut être composée de deux régions en lecture/écriture ou d'une région en lecture/écriture et d'une région en lecture seule.

Console

  1. Dans la console Google Cloud, accédez à la page Dataproc Metastore.

    Accéder à Dataproc Metastore

  2. Dans la barre de navigation, cliquez sur + Créer.

    La boîte de dialogue Créer un service de metastore s'ouvre.

  3. Sélectionnez Dataproc Metastore 2.

  4. Dans la section Tarifs et capacité, sélectionnez Enterprise Plus – Birégional.

  5. Dans le champ Nom du service, saisissez un nom unique pour votre service.

  6. Dans le champ Emplacement des données, sélectionnez US (continent) (États-Unis (continent)).

    La section Régions personnalisées s'affiche.

  7. Sous Régions personnalisées, sélectionnez une région en lecture/écriture et une région en lecture seule.

  8. Pour les autres options de configuration du service, utilisez les valeurs par défaut fournies.

  9. Pour créer et démarrer le service, cliquez sur Envoyer.

    Votre nouveau service de métastore s'affiche sur la page Dataproc Metastore. L'état indique Création jusqu'à ce que le service soit prêt à être utilisé. Une fois l'opération terminée, l'état passe à Actif. Le provisionnement du service peut prendre quelques minutes.

gcloud

Pour créer un service Dataproc Metastore avec des régions personnalisées, exécutez la commande gcloud beta metastore services create de gcloud CLI suivante.

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

Remplacez les éléments suivants :

  • SERVICE: nom de votre service Dataproc Metastore.
  • READ_WRITE_REGIONS: région en lecture-écriture compatible qui fait partie de la configuration de votre région personnalisée.
  • READ_ONLY_REGIONS: région en lecture seule compatible qui fait partie de votre configuration de région personnalisée.

Étape suivante