Après avoir créé un service Dataproc Metastore, vous pouvez associer l'un des services suivants :
- Cluster Managed Service pour Apache Spark.
- Une instance Apache Hive autogérée, une instance Apache Spark ou un cluster Presto.
Une fois que vous avez associé l'un de ces services, il utilise votre service Dataproc Metastore comme métastore Hive lors de l'exécution des requêtes.
Avant de commencer
- Activez Dataproc Metastore dans votre projet.
- Créez un service Dataproc Metastore.
- Comprenez les exigences de mise en réseau spécifiques à votre projet.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer un cluster Dataproc Metastore et un cluster Managed Service for Apache Spark, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour accorder un contrôle complet des ressources Dataproc Metastore, procédez de l'une des manières suivantes :
-
Éditeur Dataproc Metastore (
roles/metastore.editor) sur le compte utilisateur ou le compte de service -
Administrateur Dataproc Metastore (
roles/metastore.admin) sur le compte utilisateur ou le compte de service
-
Éditeur Dataproc Metastore (
-
Pour créer un cluster Managed Service pour Apache Spark :
(
roles/dataproc.worker) sur le compte de service de VM Managed Service pour Apache Spark -
Pour accorder des autorisations de lecture et d'écriture au répertoire de l'entrepôt Hive :
(
roles/storage.objectAdmin) sur le compte de service de VM Managed Service for Apache Spark
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer un cluster Dataproc Metastore et un cluster Managed Service for Apache Spark. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer un cluster Dataproc Metastore et un cluster Managed Service for Apache Spark :
-
Pour créer un Dataproc Metastore :
metastore.services.createsur le compte utilisateur ou le compte de service -
Pour créer un cluster Managed Service for Apache Spark :
dataproc.clusters.createsur le compte utilisateur ou le compte de service -
Pour accéder au répertoire de l'entrepôt Hive :
sur le compte de service de VM Managed Service for Apache Sparkorgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.*
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les rôles et autorisations Dataproc Metastore spécifiques, consultez Gérer les accès avec IAM.Clusters Managed Service pour Apache Spark
Managed Service for Apache Spark est un service géré Apache Spark et Apache Hadoop qui vous permet de bénéficier d'outils de données Open Source pour le traitement par lot, l'émission de requêtes, le streaming et le machine learning.
Remarques
Avant de créer et d'associer un cluster Managed Service for Apache Spark, vérifiez le protocole de point de terminaison utilisé par votre service Dataproc Metastore. Ce protocole définit la manière dont vos clients Hive Metastore accèdent aux métadonnées stockées dans votre Dataproc Metastore. Ce choix peut également affecter les fonctionnalités que vous pouvez intégrer et utiliser avec votre service.
Apache Thrift
Si vous utilisez le protocole de point de terminaison Apache Thrift, tenez compte des exigences réseau suivantes :
Par défaut, vous devez créer votre cluster Managed Service for Apache Spark et votre service Dataproc Metastore sur le même réseau. Votre cluster Managed Service for Apache Spark peut également utiliser un sous-réseau du réseau du service Dataproc Metastore.
Si votre cluster Managed Service pour Apache Spark appartient à un autre projet que le réseau, vous devez configurer les autorisations réseau partagées.
Si votre cluster Managed Service pour Apache Spark appartient à un projet différent de votre service Dataproc Metastore, vous devez configurer des autorisations supplémentaires avant de créer un cluster Managed Service pour Apache Spark.
gRPC
Si vous utilisez le protocole de point de terminaison gRPC, tenez compte des exigences réseau suivantes :
Après avoir créé un metastore Dataproc à l'aide du protocole de point de terminaison gRPC, vous devez accorder des rôles IAM supplémentaires.
Si vous utilisez l'authentification de cluster personnel Dataproc, votre metastore Dataproc doit utiliser le protocole de point de terminaison gRPC.
Si votre cluster Managed Service pour Apache Spark appartient à un projet différent de votre service Dataproc Metastore, vous devez configurer des autorisations supplémentaires avant de créer un cluster Managed Service pour Apache Spark.
Créer un cluster et associer un Dataproc Metastore
Les instructions suivantes vous montrent comment créer un cluster Managed Service for Apache Spark et vous y connecter à partir d'un service Dataproc Metastore. Ces instructions partent du principe que vous avez déjà créé un service Dataproc Metastore.
- Avant de créer votre cluster Managed Service for Apache Spark, assurez-vous que l'image Managed Service for Apache Spark que vous choisissez est compatible avec la version Hive Metastore que vous avez sélectionnée lors de la création de votre Dataproc Metastore. Pour en savoir plus, consultez la liste des versions d'image Managed Service pour Apache Spark.
Pour optimiser la connectivité réseau, créez le cluster Managed Service for Apache Spark dans la même région que votre service Dataproc Metastore.
Console
Dans la console Google Cloud , ouvrez la page Managed Service for Apache Spark Créer un cluster :
Dans le champ Nom du cluster, saisissez le nom de votre cluster.
Dans les menus Région et Zone, sélectionnez la même région que celle dans laquelle vous avez créé votre service Dataproc Metastore. Vous pouvez choisir n'importe quelle zone.
Cliquez sur l'onglet Personnaliser le cluster.
Dans la section Configuration du réseau, sélectionnez le même réseau que celui dans lequel vous avez créé votre service Dataproc Metastore.
Dans la section Dataproc Metastore, sélectionnez le service Dataproc Metastore que vous souhaitez associer. Si vous n'en avez pas encore créé, vous pouvez sélectionner Créer un service.
Facultatif : Si votre service Dataproc Metastore utilise le protocole de point de terminaison gRPC :
- Cliquez sur l'onglet Gérer la sécurité.
- Dans la section Accès au projet, sélectionnez Activer le champ d'application Cloud Platform pour ce cluster.
Configurez les options de service restantes si nécessaire.
Pour créer le cluster, cliquez sur Créer.
Votre nouveau cluster apparaît dans la liste des clusters. L'état du cluster indique Provisionnement jusqu'à ce qu'il soit prêt à être utilisé. Lorsqu'elle est prête à être utilisée, l'état passe à En cours d'exécution.
gcloud CLI
Pour créer un cluster et associer un Dataproc Metastore, exécutez la commande gcloud dataproc clusters create suivante :
gcloud dataproc clusters create CLUSTER_NAME \
--dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
--region=LOCATION \
--scopes=SCOPESRemplacez les éléments suivants :
CLUSTER_NAME: nom de votre nouveau cluster Managed Service pour Apache Spark.PROJECT_ID: ID du projet dans lequel vous avez créé votre service Dataproc Metastore.LOCATION: la même région dans laquelle vous avez créé votre service Dataproc Metastore.SERVICE: nom du service Dataproc Metastore que vous associez au cluster.SCOPES: (facultatif) Si votre service Dataproc Metastore utilise le protocole de point de terminaison gRPC, utilisezcloud-platform.
REST
Suivez les instructions de l'API pour créer un cluster à l'aide de l'explorateur d'API.
Associer un cluster à l'aide des propriétés de cluster Managed Service pour Apache Spark
Vous pouvez également associer un cluster Managed Service for Apache Spark à un Dataproc Metastore à l'aide des propriétés Managed Service for Apache Spark.
Ces propriétés incluent ENDPOINT_URI et WAREHOUSE_DIR de Dataproc Metastore.
Suivez ces instructions si votre service Dataproc Metastore utilise Private Service Connect ou si vous souhaitez associer un cluster Managed Service pour Apache Spark à la version auxiliaire de votre service Dataproc Metastore.
Vous pouvez associer un cluster Managed Service pour Apache Spark à l'aide des propriétés ENDPOINT_URI et WAREHOUSE_DIR de deux manières :
Option 1 : Lors de la création d'un cluster Managed Service pour Apache Spark
Lorsque vous créez un cluster Managed Service for Apache Spark, utilisez l'indicateur de propriétés avec la configuration Hive suivante.
gcloud dataproc clusters create CLUSTER_NAME \
--properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"Remplacez les éléments suivants :
CLUSTER_NAME: nom de votre nouveau cluster Managed Service for Apache Spark.ENDPOINT_URI: URI du point de terminaison de votre service Dataproc Metastore.WAREHOUSE_DIR: emplacement de votre répertoire d'entrepôt Hive.
Option 2 : Mettre à jour le fichier hive-site.xml
Vous pouvez également associer un cluster Managed Service pour Apache Spark en modifiant directement le fichier hive-site.xml du cluster.
- Connectez-vous au cluster
.*-mà l'aide de SSH. Ouvrez le fichier
/etc/hive/conf/hive-site.xmlet modifiez les lignes suivantes :<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>Remplacez les éléments suivants :
ENDPOINT_URI: URI du 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
Clusters autogérés
Un cluster autogéré peut être une instance Apache Hive, une instance Apache Spark ou un cluster Presto.
Associer un cluster autogéré
Définissez les valeurs suivantes dans votre fichier de configuration client :
hive.metastore.uris=ENDPOINT_URIhive.metastore.warehouse.dir=WAREHOUSE_DIR
Remplacez les éléments suivants :
ENDPOINT_URI: URI du point de terminaison de votre service Dataproc Metastore.WAREHOUSE_DIR: emplacement de votre répertoire d'entrepôt Hive.
Étapes suivantes
- Guide de démarrage rapide pour le déploiement de Dataproc Metastore
- Présentation de Dataproc Metastore
- Présentation de Managed Service pour Apache Spark