Tous les produits
Search
Centre de documentation

E-MapReduce:Connect to an external Hive Metastore service

Dernière mise à jour :Aug 09, 2026

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

Remarque

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.

  1. 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.

  2. Connectez-vous au nœud maître du cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.

  3. Exécutez la commande suivante pour accéder à l'interface CLI Hive :

    hive
  4. Exécutez les commandes suivantes pour créer une table nommée dw_users dans 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

  1. Accédez à la page des connexions réseau.

    1. Connectez-vous à la console EMR.

    2. Dans le volet de navigation de gauche, sélectionnez EMR Serverless > Spark.

    3. Sur la page Spark, cliquez sur le nom de l'espace de travail cible.

    4. Sur la page EMR Serverless Spark , cliquez sur Normal Network Connection dans le volet de navigation de gauche.

  2. Sur la page Normal Network Connection , cliquez sur Create Network Connection.

  3. 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

  1. 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.

  2. Ajoutez une règle de groupe de sécurité.

    1. Connectez-vous à la console EMR on ECS.

    2. Sur la page EMR on ECS, cliquez sur l'ID du cluster cible.

    3. Sur la page Status , cliquez sur le lien situé à côté de Succeeded.

    4. 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.

      Important

      Pour é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

  1. Sur la page Cluster Security Group , cliquez sur Security Group dans le volet de navigation de gauche.

  2. Sur la page OK , cliquez sur EMR Serverless Spark.

  3. 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_metastore dans 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.

    Remarque

    Si 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

  1. Sur la page Nodes , localisez l'entrée hive_metastore et 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.

  2. 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_metastore prennent effet.

  3. Interrogez les données de la table hive_metastore dans votre tâche SparkSQL.

    1. Créez une tâche de développement SparkSQL. Pour plus d'informations, consultez la rubrique Développement SparkSQL.

    2. Exécutez la commande suivante pour interroger la table dw_users du service Hive Metastore :

      SELECT * FROM dw_users;

      La requête renvoie un enregistrement contenant la valeur Bob dans la colonne name .

FAQ

Comment accéder aux données HDFS ?

La configuration dépend du fait que le cluster HDFS utilise ou non le mode haute disponibilité (HA).

  • Accès à un chemin HDFS sans HA

    Lorsque le paramètre location d'une table pointe vers un chemin HDFS sans HA, assurez-vous que le nom de domaine spécifié dans location est accessible. Par défaut, master-1-1.<cluster-id>.<region>.emr.aliyuncs.com est directement accessible. Pour les autres noms de domaine, consultez la rubrique Gérer les noms de domaine afin d'ajouter les mappages nécessaires.

  • Accès à un chemin HDFS avec HA activé

    Si l'emplacement d'une table pointe vers un chemin HDFS avec la haute disponibilité activée, vous devez configurer les mappages de noms de domaine, puis créer un fichier de configuration nommé hdfs-site.xml via la fonctionnalité Manage Custom Configuration Files . Enregistrez le fichier dans le chemin /etc/spark/conf afin que le Java Runtime ou le Fusion Runtime puisse accéder aux données. L'exemple ci-dessous présente les propriétés clés. Basez le contenu complet sur le fichier hdfs-site.xml de votre cluster EMR on ECS.

    <?xml version="1.0"?>
    <configuration>
      <property>
        <name>dfs.nameservices</name>
        <value>hdfs-cluster</value>
      </property>
      <property>
        <name>dfs.ha.namenodes.hdfs-cluster</name>
        <value>nn1,nn2,nn3</value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn1</name>
        <value>master-1-1.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn2</name>
        <value>master-1-2.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn3</name>
        <value>master-1-3.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.client.failover.proxy.provider.hdfs-cluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
      </property>
    </configuration>
  • (Facultatif) Accès à un chemin HDFS avec Kerberos activé

    Pour accéder à un chemin HDFS avec Kerberos activé, ajoutez la configuration Spark spark.kerberos.access.hadoopFileSystems . Définissez la valeur de manière à correspondre au paramètre fs.defaultFS du cluster HDFS. Par exemple, la valeur par défaut pour un cluster EMR on ECS avec HA est hdfs://hdfs-cluster .