EMR Serverless Spark se connecte à un service Hive Metastore externe pour vous permettre d'accéder aux données stockées. Configurez cette connexion dans votre espace de travail afin de gérer et d'utiliser efficacement vos ressources de données.
Prérequis
Vous avez créé un espace de travail et une session SQL. Pour plus d'informations, consultez les rubriques Créer un espace de travail et Gérer les sessions SQL.
Limites
Pour utiliser le service Hive Metastore, redémarrez toutes les sessions existantes dans votre espace de travail.
Une fois que vous avez défini un service Hive Metastore comme catalogue de données par défaut, les tâches de workflow l'utilisent automatiquement.
Procédure
Étape 1 : Préparer le service Hive Metastore
Cet exemple utilise un service Hive Metastore issu d'EMR on ECS. Si vous disposez déjà d'un service Hive Metastore dans votre VPC, ignorez cette étape.
Sur la page EMR on ECS, créez un cluster DataLake incluant le service Hive et définissez Metadata sur Built-in MySQL. Pour plus d'informations, consultez la rubrique Créer un cluster.
Connectez-vous au nœud maître du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Exécutez la commande suivante pour accéder à l'interface CLI Hive :
hive -
Exécutez les commandes suivantes pour créer une table nommée
dw_usersdans Object Storage Service (OSS) et y insérer des données :CREATE TABLE `dw_users`( `name` string) LOCATION 'oss://<yourBucket>/path/to/file'; INSERT INTO dw_users select 'Bob';
Étape 2 : Ajouter une connexion réseau
-
Accédez à la page des connexions réseau.
Connectez-vous à la console EMR.
Dans le volet de navigation de gauche, sélectionnez EMR Serverless > Spark.
Sur la page Spark, cliquez sur le nom de l'espace de travail cible.
Sur la page EMR Serverless Spark , cliquez sur Normal Network Connection dans le volet de navigation de gauche.
Sur la page Normal Network Connection , cliquez sur Create Network Connection.
-
Dans la boîte de dialogue Create Network Connection , configurez les paramètres suivants et cliquez sur OK.
|
**Paramètre**
|
**Description**
| | --- | --- | |
**Name**
|
Saisissez un nom pour la nouvelle connexion.
| |
**VPC**
|
Sélectionnez le même VPC que celui du cluster EMR.
| |
**vSwitch**
|
Sélectionnez un vSwitch situé dans le même VPC que le cluster EMR.
|Un statut Name indiquant VPC confirme que la connexion réseau a été ajoutée avec succès.
Étape 3 : Ouvrir le port du service Hive Metastore
-
Récupérez le bloc CIDR du vSwitch associé à la connexion réseau.
Connectez-vous à la console VPC et accédez à la page vSwitch pour obtenir le bloc CIDR du vSwitch.
-
Ajoutez une règle de groupe de sécurité.
Connectez-vous à la console EMR on ECS.
Sur la page EMR on ECS, cliquez sur l'ID du cluster cible.
Sur la page Status , cliquez sur le lien situé à côté de Succeeded.
-
Sur la page vSwitch , cliquez sur Add Rule. Spécifiez les champs Source et Port, puis cliquez sur Basic Information.
Paramètre
Description
Port
Saisissez
9083.Source
Saisissez le bloc CIDR du vSwitch obtenu à l'étape précédente.
ImportantPour éviter les risques de sécurité liés aux attaques externes, ne définissez pas le champ Source sur 0.0.0.0/0.
Étape 4 : Se connecter à Hive Metastore
Sur la page Cluster Security Group , cliquez sur Security Group dans le volet de navigation de gauche.
Sur la page OK , cliquez sur EMR Serverless Spark.
-
Dans la boîte de dialogue qui s'affiche, cliquez sur Catalogs , configurez les informations suivantes, puis cliquez sur Catalogs. Dans l'onglet External Hive Metastore, saisissez
hive_metastoredans le champ Data Catalog Name et configurez les paramètres suivants.Paramètre
Description
Add Catalog
Sélectionnez la connexion réseau ajoutée à l'étape 2.
External Hive Metastore
L'URI du service Hive Metastore. Le format est
thrift://<IP address of Hive metastore>:9083.Le paramètre
<IP address of Hive metastore>correspond à l'adresse IP interne du nœud maître de votre cluster EMR on ECS. Vous trouverez cette information sur la page OK du cluster.RemarqueSi votre service Hive Metastore utilise la haute disponibilité (HA), saisissez les URI de tous les nœuds concernés, séparés par des virgules (,). Par exemple :
thrift://<IP address of Hive metastore 1>:9083,thrift://<IP address of Hive metastore 2>:9083.Normal Network Connection
Le chemin d'accès au fichier keytab Kerberos.
Metastore service address
Le nom du principal dans le fichier keytab, utilisé pour s'authentifier auprès du service Kerberos. Exécutez la commande
klist -kt <keytab_file>pour afficher le principal contenu dans le fichier keytab.
Étape 5 : Utiliser Hive Metastore
Sur la page Nodes , localisez l'entrée
hive_metastoreet cliquez sur Kerberos keytab file dans la colonne Actions pour la définir comme catalogue de données par défaut de l'espace de travail.-
Redémarrez la session SQL.
Si une session SQL est en cours d'exécution dans votre espace de travail, redémarrez-la pour que les paramètres
hive_metastoreprennent effet. -
Interrogez les données de la table
hive_metastoredans votre tâche SparkSQL.Créez une tâche de développement SparkSQL. Pour plus d'informations, consultez la rubrique Développement SparkSQL.
-
Exécutez la commande suivante pour interroger la table
dw_usersdu service Hive Metastore :SELECT * FROM dw_users;La requête renvoie un enregistrement contenant la valeur
Bobdans la colonnename.