Cette page explique comment configurer un service Dataproc Metastore multirégional. Pour en savoir plus sur le fonctionnement des services multirégionaux de Dataproc Metastore, consultez la page Régions Dataproc Metastore.
Avant de commencer
- Activez Dataproc Metastore dans votre projet.
- Identifiez les exigences de mise en réseau spécifiques à votre projet.
- Découvrez les régions Dataproc Metastore et choisissez une région appropriée.
Rôles requis
Pour obtenir l'autorisation nécessaire pour créer un service Dataproc Metastore multirégional, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur votre projet, selon le principe du moindre privilège:
-
Accorder un contrôle complet sur les ressources Dataproc Metastore (
roles/metastore.editor
) -
Accordez un accès complet à toutes les ressources Dataproc Metastore, y compris pour l'administration des stratégies IAM (
roles/metastore.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient l'autorisation metastore.services.create
, nécessaire 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 autorisations spécifiques à Dataproc Metastore, consultez la page Gérer les accès avec IAM.À propos des services Dataproc Metastore multirégionaux
Les services multirégionaux Dataproc Metastore 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'emplacement 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é actif-actif. Cette configuration signifie que les charges de travail peuvent accéder à l'une ou l'autre des régions lors de l'exécution de tâches. Ce service 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 toute interruption de vos tâches Dataproc.
Points à prendre en compte
Les considérations suivantes s'appliquent aux services multirégionaux Dataproc Metastore.
Les services multirégionaux ne sont compatibles qu'avec le type de base de données Spanner. Consultez la liste des fonctionnalités compatibles avant de créer votre service multirégional.
Les services multirégionaux ne sont compatibles qu'avec les configurations Dataproc Metastore 2.
Les services multirégionaux créent des buckets d'artefacts dans un emplacement multirégional Cloud Storage. Par exemple, les buckets
Nam7
sont créés dans l'emplacement multirégionalUS
.
Créer un service Dataproc Metastore multirégional
Choisissez l'un des onglets suivants pour apprendre à créer un service multirégional à l'aide du protocole de point de terminaison Thrift ou gRPC, avec le 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 pour vous.
Console
Dans la console Google Cloud, accédez à la page Dataproc Metastore.
Dans la barre de navigation, cliquez sur + Créer.
La boîte de dialogue Créer un service de métastore s'ouvre.
Sélectionnez Dataproc Metastore 2.
Dans la section Tarifs et capacité, sélectionnez Enterprise Plus – Dual région.
Dans le champ Protocole du point de terminaison, sélectionnez gRPC*.
Pour créer et démarrer le service, cliquez sur Envoyer.
Votre nouveau service de métastore apparaît sur la page Dataproc Metastore. L'état affiché est Création en cours jusqu'à ce que le service soit prêt à être utilisé. Une fois l'opération terminée, son état passe à Actif. Le provisionnement du service peut prendre quelques minutes.
gcloud CLI
Pour créer un service multirégional Dataproc Metastore, exécutez la commande gcloud metastore services create
suivante. Cette commande crée la version 3.1.2 de Dataproc Metastore.
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
: emplacement multirégional dans lequel vous créez votre service Dataproc Metastore.INSTANCE_SIZE
: taille de l'instance de votre service Dataproc Metastore multirégional Exemples :small
,medium
oularge
. Si vous spécifiez une valeur pourINSTANCE_SIZE
, ne spécifiez pas de valeur pourSCALING_FACTOR
.SCALING_FACTOR
: facteur de scaling de votre service Dataproc Metastore. Exemple :0.1
. Si vous spécifiez une valeur pourSCALING_FACTOR
, ne spécifiez pas de valeur pourINSTANCE_SIZE
.
Friper
Lorsque vous créez un service multirégional utilisant 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 pour chaque région.
Par exemple, pour créer l'emplacement multirégional nam7
, vous devez indiquer les régions us-central1
et us-east4
.
Console
Dans la console Google Cloud, accédez à la page Dataproc Metastore.
Dans la barre de navigation, cliquez sur + Créer.
La boîte de dialogue Créer un service de métastore s'ouvre.
Sélectionnez Dataproc Metastore 2.
Dans la section Tarifs et capacité, sélectionnez Enterprise Plus – Dual région.
Pour en savoir plus, consultez la section Forfaits et configurations de scaling.
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 Convention d'attribution de noms aux ressources.
Dans le champ Protocole du point de terminaison, sélectionnez Thrift.
Pour Configuration du réseau, indiquez les sous-réseaux formant la configuration multirégionale que vous avez choisie.
Pour les autres options de configuration de service, utilisez les valeurs par défaut fournies.
Pour créer et démarrer le service, cliquez sur Envoyer.
Votre nouveau service de métastore apparaît sur la page Dataproc Metastore. L'état affiché est Création en cours jusqu'à ce que le service soit prêt à être utilisé. Une fois l'opération terminée, son état passe à Actif. Le provisionnement du service peut prendre quelques minutes.
gcloud CLI
Pour créer un service multirégional Dataproc Metastore, exécutez la commande gcloud metastore services create
suivante.
Cette commande crée la version 3.1.2 de Dataproc Metastore.
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
: emplacement multirégional dans lequel vous créez votre service Dataproc Metastore.PROJECT_ID
: ID du projet Google Cloud dans lequel vous créez votre service Dataproc Metastore.SUBNET1
etSUBNET2
: liste des sous-réseaux formant 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
etLOCATION2
: liste d'emplacements formant une configuration multirégionale. Vous pouvez utiliser l'ID de l'établissement. Par exemple, pour un emplacement multirégionalnam7
, utilisezus-central1
etus-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 service Dataproc Metastore multirégional Exemples :small
,medium
oularge
. Si vous spécifiez une valeur pourINSTANCE_SIZE
, ne spécifiez pas de valeur pourSCALING_FACTOR
.SCALING_FACTOR
: facteur de scaling de votre service Dataproc Metastore. Exemple :0.1
. Si vous spécifiez une valeur pourSCALING_FACTOR
, ne spécifiez pas de valeur pourINSTANCE_SIZE
.
REST
Pour savoir comment créer un service Dataproc Metastore multirégional, suivez les instructions pour créer un service à l'aide de 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
etSUBNET2
: liste des sous-réseaux formant 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 apprendre à connecter un service multirégional Dataproc Metastore à partir d'un cluster Dataproc.
gRPC
Pour connecter un cluster Dataproc, choisissez l'onglet correspondant à la version de Dataproc Metastore que vous utilisez.
Dataproc Metastore 3.1.2
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
: emplacement multirégional Google Cloud dans lequel vous souhaitez créer le cluster Dataproc.DATAPROC_IMAGE_VERSION
: version de l'image Dataproc que vous utilisez avec votre service Dataproc Metastore. Vous devez utiliser une version d'image2.0
ou ultérieure.PROJECT
: projet contenant votre service Dataproc Metastore.SERVICE_ID
: ID de votre service Dataproc Metastore.
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
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 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.
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 du métastore Hive, utilisez la version d'image
1.5
. - Pour la version 3.1.2 du métastore Hive, utilisez la version d'image
2.0
.
- Pour la version 2.0 du métastore Hive, utilisez la version d'image
Récupérez le répertoire d'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])")
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
Friper
Option 1: Modifier le fichier hive-site.xml
- Recherchez l'URI du point de terminaison et le répertoire d'entrepôt de votre service Dataproc Metastore. Vous pouvez choisir n'importe lequel des points de terminaison exposés.
- Dans la console Google Cloud, accédez à la page Instances de VM.
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 d'accueil sur le nœud.
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 :
ENDPOINT_URI
: URI de point de terminaison de votre service Dataproc Metastore.WAREHOUSE_DIR
: emplacement de votre répertoire d'entrepôt Hive.
Redémarrez HiveServer2.
sudo systemctl restart hive-server2.service
Option 2: Utiliser la gcloud CLI
Exécutez la commande gcloud CLI gcloud dataproc clusters create
suivante.
- Recherchez l'URI du point de terminaison et le répertoire d'entrepôt de votre service Dataproc Metastore. Vous pouvez choisir n'importe lequel 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 du métastore Hive, utilisez la version d'image
1.5
. - Pour la version 3.1.2 du métastore Hive, utilisez la version d'image
2.0
.
- Pour la version 2.0 du métastore Hive, utilisez la version d'image
ENDPOINT
: point de terminaison Thrift utilisé par votre service Dataproc Metastore.WAREHOUSE_DIR
: répertoire d'entrepôt de votre Dataproc Metastore.