La connectivité réseau permet à Serverless Spark d'accéder aux sources de données, aux serveurs et aux services hébergés dans votre VPC (Virtual Private Cloud). Ce guide explique comment configurer une connexion réseau en reliant des jobs Spark SQL et JAR à un Hive Metastore (HMS) situé dans votre VPC.
Prérequis
Une source de données doit être préparée. Cet exemple utilise un cluster Data Lake créé sur la page EMR on ECS. Le cluster inclut le service Hive et ses Metadata sont stockées dans Built-in MySQL. Pour plus d'informations, consultez la rubrique Créer un cluster.
Étape 1 : Créer une connexion réseau
-
Accédez à la page Network Connection.
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, puis cliquez sur OK.
Parameter
Description
Name
Saisissez un nom pour la connexion.
VPC
Sélectionnez le même VPC que celui du cluster EMR.
Si aucun VPC n'est disponible, cliquez sur Create VPC pour en créer un dans la console VPC. Pour plus d'informations, consultez la rubrique VPCs et vSwitches.
RemarqueSi votre application Serverless Spark nécessite un accès Internet, assurez-vous que la connexion réseau le permet. Par exemple, vous pouvez déployer une passerelle NAT publique dans le VPC pour autoriser l'accès Internet aux instances Serverless Spark. Pour plus d'informations, consultez la rubrique Public NAT Gateway.
vSwitch
Sélectionnez un vSwitch appartenant au même VPC que le cluster EMR.
Si aucun vSwitch n'est disponible dans la zone actuelle, cliquez sur vSwitch pour en créer un dans la console VPC. Pour plus d'informations, consultez la rubrique Créer et gérer des vSwitches.
ImportantVous ne pouvez sélectionner des vSwitches que dans certaines zones. Pour plus d'informations, consultez la rubrique Limites d'utilisation.
La connexion réseau est créée lorsque son Status passe à Succeeded.
Étape 2 : Ajouter une règle de groupe de sécurité
-
Récupérez le bloc CIDR du vSwitch utilisé par la connexion réseau.
Connectez-vous à la console VPC et accédez à la page vSwitch pour localiser 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 Basic Information, dans la section Security, cliquez sur le lien situé à côté de Cluster Security Group.
-
Sur la page Security Group Details, dans la section Rules, cliquez sur Add Rule, configurez les paramètres suivants, puis cliquez sur OK.
Parameter
Description
Protocol
Protocole réseau autorisé. Valeur par défaut : TCP.
RemarqueSi votre connexion réseau utilise l'authentification Kerberos, nous vous recommandons de sélectionner UDP et d'ouvrir le port 88. Pour plus d'informations sur l'authentification Kerberos, consultez la rubrique Activer l'authentification Kerberos.
Source
Saisissez le bloc CIDR du vSwitch obtenu à l'étape précédente.
ImportantPour éviter les risques de sécurité, ne définissez pas Authorization Object sur 0.0.0.0/0.
Destination (Current Instance)
Port de destination à ouvrir. Par exemple, 9083.
(Facultatif) Étape 3 : Se connecter à Hive et interroger des données
Ignorez cette étape si vous disposez déjà d'une table Hive.
Connectez-vous au nœud maître de votre cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Démarrez la ligne de commande Hive.
hive -
Créez une table.
CREATE TABLE my_table (id INT,name STRING); -
Insérez des données dans la table.
INSERT INTO my_table VALUES (1, 'John'); INSERT INTO my_table VALUES (2, 'Jane'); -
Interrogez les données.
SELECT * FROM my_table;
(Facultatif) Étape 4 : Générer et télécharger l'artefact JAR
Pour exécuter un job JAR, vous devez d'abord préparer un artefact. Ignorez cette étape pour les jobs Spark SQL.
-
Créez un projet Maven sur votre machine locale.
Exécutez la commande
mvn packagepour empaqueter le projet. Cette commande génère le fichier sparkDataFrame-1.0-SNAPSHOT.jar.Sur la page EMR Serverless Spark de votre espace de travail, cliquez sur Artifacts dans le volet de navigation de gauche.
Sur la page Artifacts, cliquez sur Upload File.
Téléchargez le fichier
sparkDataFrame-1.0-SNAPSHOT.jardepuis votre machine locale.
Étape 5 : Créer et exécuter un job
Job JAR
Sur la page EMR Serverless Spark, cliquez sur Development dans le volet de navigation de gauche.
Cliquez sur Create.
Saisissez un nom, sélectionnez comme type, puis cliquez sur OK.
-
Dans l'éditeur de jobs, configurez les paramètres suivants. Laissez les autres paramètres avec leurs valeurs par défaut. Ensuite, cliquez sur Run.
Parameter
Description
Main JAR Resource
Sélectionnez l'artefact que vous avez téléchargé à l'étape précédente. Par exemple, sparkDataFrame-1,0-SNAPSHOT.jar.
Main Class
Saisissez la classe principale du job. Dans cet exemple, utilisez com.example.DataFrameExample.
Normal Network Connection
Sélectionnez la connexion réseau que vous avez créée à l'étape 1.
Spark Configuration
Configurez les propriétés suivantes.
spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryRemplacez
...par l'adresse IP privée du HMS (Hive Metastore Service). Dans cet exemple, le HMS se trouve sur le nœud maître de votre cluster EMR. Vous pouvez trouver cette adresse sur la page Nodes du cluster EMR en cliquant sur l'icône
à côté du groupe de nœuds emr-master. Après avoir exécuté le job, accédez à la section Execution Records en bas de la page et cliquez sur Log Exploration dans la colonne Actions du job.
Dans l'onglet Log Exploration, vous pouvez consulter les journaux du job.
Job Spark SQL
-
Créez et démarrez une session SQL. Pour plus d'informations, consultez la rubrique Gérer les sessions SQL.
Normal Network Connection : Sélectionnez la connexion réseau que vous avez créée à l'étape 1.
-
Spark Configuration : Configurez les propriétés suivantes.
spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryRemplacez
*.*.*.*par l'adresse IP privée du HMS (Hive Metastore Service). Dans cet exemple, le HMS se trouve sur le nœud maître de votre cluster EMR. Vous pouvez trouver cette adresse sur la page Nodes du cluster EMR en cliquant sur l'icône
à côté du groupe de nœuds emr-master.
Sur la page EMR Serverless Spark, cliquez sur Development dans le volet de navigation de gauche.
Dans l'onglet Development, cliquez sur l'icône
.Dans la boîte de dialogue Create, saisissez un nom tel que users_task, définissez le Type sur la valeur par défaut SparkSQL, puis cliquez sur OK.
-
Dans le nouvel éditeur de jobs, sélectionnez le catalog, la base de données et votre session SQL en cours d'exécution. Saisissez la requête suivante et cliquez sur Run.
SELECT * FROM default.my_table;RemarqueLors du déploiement de code SQL utilisant un Metastore externe dans un workflow, assurez-vous que vos instructions SQL spécifient les noms de table au format
db.table_nameet que vous sélectionnez une base de données par défaut au formatcatalog_id.defaultà partir de l'option Catalog située dans le coin supérieur droit de l'interface utilisateur.Les résultats de la requête s'affichent dans la section Execution Results en bas de la page.