Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Gérer les catalogues Hive

Dernière mise à jour :Aug 09, 2026

Une fois le catalogue Hive configuré, lisez directement les métadonnées Hive dans la console de développement de Realtime Compute for Apache Flink sans enregistrer manuellement les tables Hive. Cette approche améliore l'efficacité du développement des jobs et garantit l'exactitude des données. Cette rubrique explique comment configurer les métadonnées Hive ainsi que créer et utiliser un catalogue Hive.

Contexte

Pour configurer un catalogue Hive dans la console de développement de Realtime Compute for Apache Flink, stockez d'abord le fichier de configuration du catalogue Hive et les dépendances Hadoop dans un répertoire spécifié via la console Object Storage Service (OSS). Une fois le catalogue Hive configuré, utilisez des instructions DML pour créer la logique métier et récupérer directement les métadonnées des tables Hive dans la console de développement, ce qui élimine le besoin de déclarer les tables via des instructions DDL. Les tables du catalogue Hive peuvent servir de tables sources ou de tables de résultats pour les déploiements en streaming et par lots.

Realtime Compute for Apache Flink prend en charge soit un Hive metastore, soit Alibaba Cloud Data Lake Formation (DLF) comme centre de métadonnées pour les catalogues Hive. Cette rubrique décrit les opérations suivantes pour la gestion des catalogues Hive :

Prérequis

Pour utiliser Hive MetaStore ou Alibaba Cloud DLF comme centre de gestion des métadonnées d'un catalogue Hive, effectuez les configurations suivantes :

  • Utilisation de Hive MetaStore comme centre de gestion des métadonnées d'un catalogue Hive

    Exigence

    Description

    Activez le service Hive MetaStore.

    Utilisez les commandes suivantes :

    • Pour démarrer le service Hive MetaStore : hive --service metastore

    • Pour vérifier si le service Hive MetaStore est activé : netstat -ln | grep 9083

      Le numéro de port par défaut pour Hive MetaStore est 9083. Si vous avez configuré un autre numéro de port dans le fichier hive-site.xml, remplacez 9083 par le numéro de port correct.

    Configurez une liste d'autorisation sur Hive MetaStore pour autoriser l'accès depuis Flink.

    Pour obtenir les plages CIDR pour Flink, consultez Configurer une liste d'autorisation. Pour configurer la liste d'autorisation Hive MetaStore, consultez Ajouter une règle de groupe de sécurité.

  • Utilisation d'Alibaba Cloud DLF comme centre de gestion des métadonnées d'un catalogue Hive

    Activez Alibaba Cloud DLF.

Limites

  • Seuls les Hive metastores autogérés sont pris en charge.

  • Seul Ververica Runtime (VVR) 6.x prend en charge Hive 1.x, 2,1.x et 2,2.x, car la prise en charge de ces versions est dépréciée dans Apache Flink 1.16 et versions ultérieures.

  • Si un catalogue Hive utilise Data Lake Formation (DLF) comme metastore, seul Ververica Runtime (VVR) 8.0.6 ou version ultérieure prend en charge la création de tables non-Hive.

  • Seul Ververica Runtime (VVR) 8.0.6 ou version ultérieure prend en charge l'écriture de données dans OSS-HDFS.

Configurer les métadonnées Hive

  1. Connectez le VPC du cluster Hadoop au VPC de Realtime Compute for Apache Flink.

    Connectez les VPC en utilisant Alibaba Cloud DNS PrivateZone. Pour plus d'informations, consultez Resolver. Une fois le réseau connecté, Realtime Compute for Apache Flink utilise les fichiers de configuration du cluster Hadoop pour y accéder.

  2. Un catalogue Hive peut utiliser soit Hive MetaStore, soit Data Lake Formation (DLF) pour la gestion des métadonnées. Les sections suivantes décrivent les configurations requises.

    Hive MetaStore

    Assurez-vous que le paramètre hive.metastore.uris dans le fichier de configuration hive-site.xml est correctement configuré.

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://xx.yy.zz.mm:9083</value>
        <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
     </property>

    Dans l'exemple précédent, xx.yy.zz.mm correspond à l'adresse IP interne ou à l'adresse IP publique de Hive MetaStore.

    Remarque

    Si vous définissez hive.metastore.uris avec un nom d'hôte, vous devez configurer un service de résolution de noms de domaine. Sinon, lorsque la console de développement Flink accède à distance à Hive, la valeur du paramètre hive.metastore.uris ne peut pas être résolue et une erreur UnknownHostException est signalée. Pour plus d'informations sur la configuration d'un service de résolution de noms de domaine, consultez Add a PrivateZone record.

    Data Lake Formation (DLF)

    Pour permettre au catalogue Hive d'accéder à DLF, ajoutez les propriétés suivantes au fichier de configuration hive-site.xml.

    Remarque

    Si votre fichier hive-site.xml contient la propriété dlf.catalog.akMode, vous devez la supprimer. Sinon, le catalogue Hive ne pourra pas accéder à DLF.

    <property>
      <name>hive.imetastoreclient.factory.class</name>
      <value>com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory</value>
    </property>
    <property>
      <name>dlf.catalog.uid</name>
      <value>${YOUR_DLF_CATALOG_UID}</value>
    </property>
    <property>
      <name>dlf.catalog.endpoint</name>
      <value>${YOUR_DLF_ENDPOINT}</value>
    </property>
    <property>
      <name>dlf.catalog.region</name>
      <value>${YOUR_DLF_CATALOG_REGION}</value>
    </property>
    <property>
      <name>dlf.catalog.accessKeyId</name>
      <value>${YOUR_ACCESS_KEY_ID}</value>
    </property>
    <property>
      <name>dlf.catalog.accessKeySecret</name>
      <value>${YOUR_ACCESS_KEY_SECRET}</value>
    </property>

    Paramètre

    Description

    Remarques

    dlf.catalog.uid

    Votre ID de compte Alibaba Cloud.

    Pour obtenir les informations de votre compte, accédez à la page User Information.

    dlf.catalog.endpoint

    Le point de terminaison du service DLF.

    Pour plus d'informations, consultez Regions and endpoints.

    Remarque
    • Nous vous recommandons de définir le paramètre dlf.catalog.endpoint sur le point de terminaison VPC de DLF. Par exemple, si la région sélectionnée est Chine (Hangzhou), définissez le paramètre dlf.catalog.endpoint sur dlf-vpc.cn-hangzhou.aliyuncs.com.

    • Pour accéder à DLF entre différents VPC, consultez How do I access services across VPCs?.

    dlf.catalog.region

    La région du service DLF.

    Pour plus d'informations, consultez Regions and endpoints.

    Remarque

    Assurez-vous que cette région correspond à celle spécifiée dans le paramètre dlf.catalog.endpoint.

    dlf.catalog.accessKeyId

    Votre AccessKey ID Alibaba Cloud.

    Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

    dlf.catalog.accessKeySecret

    Votre AccessKey Secret Alibaba Cloud.

    Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

  3. Un catalogue Hive peut stocker des tables dans Object Storage Service (OSS) ou dans le service OSS-HDFS. Les sections suivantes décrivent les configurations requises.

    OSS

    Pour permettre au catalogue Hive d'accéder à OSS, ajoutez les propriétés suivantes au fichier de configuration hive-site.xml.

    <property>
      <name>fs.oss.impl.disable.cache</name>
      <value>true</value>
    </property>
    <property>
      <name>fs.oss.impl</name>
      <value>org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem</value>
    </property>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>${YOUR_OSS_WAREHOUSE_DIR}</value>
    </property>
    <property>
      <name>fs.oss.endpoint</name>
      <value>${YOUR_OSS_ENDPOINT}</value>
    </property>
    <property>
      <name>fs.oss.accessKeyId</name>
      <value>${YOUR_ACCESS_KEY_ID}</value>
    </property>
    <property>
      <name>fs.oss.accessKeySecret</name>
      <value>${YOUR_ACCESS_KEY_SECRET}</value>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>oss://${YOUR_OSS_BUCKET_DOMIN}</value>
    </property>

    Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Remarques

    hive.metastore.warehouse.dir

    Le chemin de stockage des données de table.

    fs.oss.endpoint

    Le point de terminaison Object Storage Service (OSS).

    Pour plus d'informations, consultez Regions and endpoints.

    fs.oss.accessKeyId

    Votre AccessKey ID Alibaba Cloud.

    Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

    fs.oss.accessKeySecret

    Votre AccessKey Secret Alibaba Cloud.

    Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

    fs.defaultFS

    Le système de fichiers par défaut pour les données de table.

    Spécifiez votre bucket OSS comme système de fichiers par défaut. Par exemple, oss://your-bucket-name.

    OSS-HDFS

    1. Pour permettre au catalogue Hive d'accéder au service OSS-HDFS, ajoutez les propriétés suivantes au fichier de configuration hive-site.xml.

      <property>
        <name>fs.jindo.impl</name>
        <value>com.aliyun.jindodata.jindo.JindoFileSystem</value>
      </property>
      <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>${YOUR_OSS_WAREHOUSE_DIR}</value>
      </property>
      <property>
        <name>fs.oss.endpoint</name>
        <value>${YOUR_OSS_ENDPOINT}</value>
      </property>
      <property>
        <name>fs.oss.accessKeyId</name>
        <value>${YOUR_ACCESS_KEY_ID}</value>
      </property>
      <property>
        <name>fs.oss.accessKeySecret</name>
        <value>${YOUR_ACCESS_KEY_SECRET}</value>
      </property>
      <property>
        <name>fs.defaultFS</name>
        <value>oss://${YOUR_OSS_HDFS_BUCKET_DOMIN}</value>
      </property>

      Paramètre

      Description

      Remarques

      hive.metastore.warehouse.dir

      Le chemin de stockage des données de table.

      fs.oss.endpoint

      Le point de terminaison Object Storage Service (OSS).

      Pour plus d'informations, consultez Regions and endpoints.

      fs.oss.accessKeyId

      Votre AccessKey ID Alibaba Cloud.

      Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

      fs.oss.accessKeySecret

      Votre AccessKey Secret Alibaba Cloud.

      Pour plus d'informations, consultez Obtenir une paire de clés AccessKey.

      fs.defaultFS

      Le système de fichiers par défaut pour les données de table.

      Spécifiez votre bucket OSS comme système de fichiers par défaut. Par exemple, oss://your-bucket-name.

    2. (Facultatif) Pour lire les tables Hive au format Parquet depuis le service OSS-HDFS, ajoutez les paramètres suivants au fichier de configuration de Realtime Compute for Apache Flink :

      fs.oss.jindo.accessKeyId: ${YOUR_ACCESS_KEY_ID}
      fs.oss.jindo.accessKeySecret: ${YOUR_ACCESS_KEY_SECRET}
      fs.oss.jindo.endpoint: ${YOUR_JINODO_ENDPOINT}
      fs.oss.jindo.buckets: ${YOUR_JINDO_BUCKETS}

      Pour plus d'informations sur les paramètres, consultez Écrire des données dans OSS-HDFS.

    Remarque

    Si vous utilisez la fonctionnalité de stockage entièrement géré de Realtime Compute for Apache Flink, vous n'avez pas besoin d'effectuer les étapes suivantes. Vous pouvez passer directement à Créer un catalogue Hive.

  4. Dans la console OSS, créez des répertoires et téléchargez les fichiers de configuration Hive ainsi que les dépendances Hadoop vers les chemins cibles.

    1. Connectez-vous à la console OSS.

    2. Dans le volet de navigation de gauche, cliquez sur Buckets.

    3. Cliquez sur le nom du bucket cible.

    4. Dans le chemin oss://${bucket}/artifacts/namespaces/${ns}/, créez un répertoire nommé ${hms}.

      Pour plus d'informations sur la création d'un répertoire dans la console OSS, consultez Créer des répertoires. Le tableau suivant décrit les variables du chemin.

      Paramètre

      Description

      ${bucket}

      Le nom du bucket utilisé par Realtime Compute for Apache Flink.

      ${ns}

      L'espace de travail où vous utiliserez le catalogue Hive.

      ${hms}

      Nous vous recommandons d'utiliser le même nom que celui du catalogue Hive que vous prévoyez de créer.

      Remarque

      Après l'activation d'un espace de travail, Realtime Compute for Apache Flink crée automatiquement le répertoire /artifacts/namespaces/${ns}/ dans le bucket spécifié pour stocker des données telles que les packages JAR. Si vous ne trouvez pas ce répertoire dans la console OSS, accédez à la page Artifacts dans la console de développement et téléchargez un fichier pour déclencher la création du répertoire.

    5. Dans le chemin oss://${bucket}/artifacts/namespaces/${ns}/${hms}, créez deux répertoires : hive-conf-dir et hadoop-conf-dir. Pour plus d'informations, consultez Créer des répertoires.

      Stockez les fichiers suivants dans les répertoires hive-conf-dir et hadoop-conf-dir :

      • Le répertoire oss://${bucket}/artifacts/namespaces/${ns}/${hms}/hive-conf-dir/ stocke le fichier de configuration Hive hive-site.xml.

      • Le répertoire oss://${bucket}/artifacts/namespaces/${ns}/${hms}/hadoop-conf-dir/ stocke les fichiers de configuration Hadoop, notamment core-site.xml, hdfs-site.xml, yarn-site.xml et mapred-site.xml.

      Après avoir créé les répertoires, vous pouvez les afficher et copier leurs URL OSS sur la page Files.

    6. Téléchargez votre fichier de configuration Hive (hive-site.xml) dans le répertoire hive-conf-dir. Pour plus d'informations, consultez Télécharger des objets.

    7. Téléchargez les fichiers de configuration suivants dans le répertoire hadoop-conf-dir. Pour plus d'informations, consultez Télécharger des objets.

      • core-site.xml

      • hdfs-site.xml

      • mapred-site.xml

      • Autres fichiers, tels que les packages compressés utilisés par les jobs Hive.

Créer un catalogue Hive

Après avoir configuré les métadonnées Hive, créez un catalogue Hive. Vous pouvez créer un catalogue via l'interface utilisateur ou en exécutant des commandes SQL. Nous vous recommandons d'utiliser l'interface utilisateur.

Interface utilisateur

  1. Accédez à la page Catalogs.

    1. Connectez-vous à la console Realtime Compute for Apache Flink. Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.

    2. Dans le volet de navigation de gauche, cliquez sur Catalogs.

  2. Cliquez sur Create Catalog. Sur la page qui s'affiche, sélectionnez Hive puis cliquez sur Next.

  3. Configurez les paramètres.

    Important

    Vous ne pouvez pas modifier les paramètres de configuration après la création du catalogue. Pour apporter des modifications, vous devez supprimer le catalogue existant et en créer un nouveau.

    Paramètre

    Description

    Nom du catalogue

    Le nom du catalogue Hive.

    hive-version

    La version du Hive metastore.

    Realtime Compute for Apache Flink prend en charge les versions Hive 2.0.0 à 2.3.9 et 3,1.0 à 3,1.3. Lors de la création d'un catalogue Hive, définissez le paramètre hive-version comme suit :

    • Pour Hive 2.0.x et 2,1.x, définissez ce paramètre sur 2,2.0.

    • Pour Hive 2,2.x, 2,3.x et 3,1.x, définissez ce paramètre respectivement sur 2,2.0, 2,3.6 et 3,1.2.

    default-database

    Le nom de la base de données par défaut.

    hive-conf-dir

    • OSS : Le répertoire où sont stockés les fichiers de configuration Hive. Vous devez créer le répertoire hive-conf-dir au préalable. Pour plus d'informations, consultez Configurer les métadonnées Hive.

    • Stockage entièrement géré : Téléchargez les fichiers correspondants selon les instructions de la console.

    hadoop-conf-dir

    • OSS : Le répertoire où sont stockées les dépendances Hadoop. Vous devez créer le répertoire hadoop-conf-dir au préalable. Pour plus d'informations, consultez Configurer les métadonnées Hive.

    • Stockage entièrement géré : Téléchargez les fichiers correspondants selon les instructions de la console.

    hive-kerberos

    Active l'authentification Kerberos. Vous devez configurer le cluster Kerberos enregistré et le principal. Si vous n'avez pas enregistré de cluster Kerberos, consultez Enregistrer un cluster Hive Kerberisé.

  4. Cliquez sur Confirm.

  5. Dans la section Catalogs à gauche, consultez le catalogue créé.

SQL

  1. Dans l'éditeur de la page Scripts, saisissez l'instruction suivante.

    CREATE CATALOG ${HMS Name} WITH (
        'type' = 'hive',
        'default-database' = 'default',
        'hive-version' = '<hive-version>',
        'hive-conf-dir' = '<hive-conf-dir>',
        'hadoop-conf-dir' = '<hadoop-conf-dir>'
    );

    Paramètre

    Description

    ${HMS Name}

    Le nom du catalogue Hive.

    type

    Le type de connecteur. La valeur doit être hive.

    default-database

    Le nom de la base de données par défaut.

    hive-version

    La version du Hive metastore.

    Realtime Compute for Apache Flink prend en charge les versions Hive 2.0.0 à 2.3.9 et 3,1.0 à 3,1.3. Lors de la création d'un catalogue Hive, définissez le paramètre hive-version comme suit :

    • Pour Hive 2.0.x et 2,1.x, définissez ce paramètre sur 2,2.0.

    • Pour Hive 2,2.x, 2,3.x et 3,1.x, définissez ce paramètre respectivement sur 2,2.0, 2,3.6 et 3,1.2.

    hive-conf-dir

    Le répertoire où sont stockés les fichiers de configuration Hive. Vous devez créer le répertoire hive-conf-dir au préalable. Pour plus d'informations, consultez Configurer les métadonnées Hive.

    hadoop-conf-dir

    Le répertoire où sont stockées les dépendances Hadoop. Vous devez créer le répertoire hadoop-conf-dir au préalable. Pour plus d'informations, consultez Configurer les métadonnées Hive.

  2. Sélectionnez l'instruction CREATE CATALOG et cliquez sur Run à gauche des numéros de ligne.

    Après avoir configuré le catalogue Hive, vous pouvez référencer ses tables dans vos jobs en tant que tables de résultats et tables de dimension sans les déclarer dans des instructions DDL. Le nom de la table doit être au format ${hive-catalog-name}.${hive-db-name}.${hive-table-name}.

    Pour arrêter d'utiliser le catalogue Hive, consultez Supprimer un catalogue Hive.

Utiliser un catalogue Hive

Créer une table Hive

Interface utilisateur

  1. Accédez à la page Catalogs.

    1. Connectez-vous à la console Realtime Compute for Apache Flink. Dans la colonne Actions de l'espace de travail souhaité, cliquez sur Console.

    2. Dans le volet de navigation de gauche, cliquez sur Catalogs.

  2. Recherchez le catalogue souhaité et cliquez sur View dans la colonne Actions.

  3. Recherchez la base de données souhaitée et cliquez sur View dans la colonne Actions.

  4. Cliquez sur Create Table.

  5. Sur l'onglet Built-in, sélectionnez un connecteur et cliquez sur Next.

  6. Saisissez l'instruction CREATE TABLE et configurez ses paramètres.

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  7. Cliquez sur OK.

Commandes SQL

  1. Dans l'éditeur Scripts, saisissez la commande suivante :

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  2. Sélectionnez l'instruction et cliquez sur Run à gauche des numéros de ligne.

Exemple :

-- Create the flink_hive_test table in the flinkhive database of the flinkexporthive catalog.
CREATE TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` (
  id INT,
  name STRING
) WITH (
  'connector' = 'hive'
);

Modifier une table Hive

Dans l'éditeur Scripts, saisissez les commandes suivantes.

-- Add a column to the Hive table.
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
ADD column type-column;
-- Drop a column from the Hive table.
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
DROP column;

Exemple :

-- Add the color column to the Hive table.
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
ADD color STRING;
-- Drop the color column from the Hive table.
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
DROP color;

Lire des données depuis une table Hive

INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`;

Écrire des données dans une table Hive

INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
SELECT ... 
FROM ${other_source_table};

Supprimer une table Hive

Interface utilisateur

  1. Accédez à la page Catalogs.

    1. Connectez-vous à la console Realtime Compute for Apache Flink. Dans la colonne Actions de l'espace de travail souhaité, cliquez sur Console.

    2. Dans le volet de navigation de gauche, cliquez sur Catalogs.

  2. Dans le volet Catalogs, développez le catalogue et la base de données souhaités, puis cliquez sur la table que vous souhaitez supprimer.

  3. Sur la page des détails de la table, cliquez sur Delete Table.

  4. Dans la boîte de dialogue de confirmation, cliquez sur OK.

Commandes SQL

Dans l'éditeur Scripts, saisissez la commande suivante :

-- Drop the Hive table.
DROP TABLE `${catalog_name}`.`${db_name}`.`${table_name}`;

Exemple :

-- Drop the Hive table.
DROP TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`;

Afficher un catalogue Hive

  1. Accédez à la page Catalogs.

    1. Connectez-vous à la console Realtime Compute for Apache Flink.

    2. Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.

    3. Cliquez sur Catalogs.

  2. Sur la page Catalog List, vérifiez les colonnes Name et Type.

    Remarque

    Pour afficher les bases de données et les tables d'un catalogue, cliquez sur View dans la colonne Actions.

Supprimer un catalogue Hive

Avertissement

La suppression d'un catalogue Hive n'affecte pas les déploiements en cours d'exécution. Toutefois, elle affecte les déploiements hors ligne ou ceux qui doivent être mis en pause et repris. Procédez avec prudence.

Interface utilisateur

  1. Accédez à la page Catalog List.

    1. Connectez-vous à la console Realtime Compute for Apache Flink, et dans la colonne Actions de l'espace de travail cible, cliquez sur Console.

    2. Cliquez sur Catalogs.

  2. Sur la page Catalog List, recherchez le catalogue que vous souhaitez supprimer et cliquez sur Delete dans la colonne Actions.

  3. Dans la boîte de dialogue de confirmation, cliquez sur Delete.

  4. Dans la zone Catalogs à gauche, vérifiez que le catalogue a été supprimé.

Commande SQL

  1. Dans l'éditeur script, saisissez la commande suivante.

    DROP CATALOG ${HMS Name};

    Dans cette commande, ${HMS Name} correspond au nom du catalogue Hive à supprimer.

  2. Sélectionnez la commande, faites un clic droit, puis sélectionnez Run.

  3. Dans la zone Catalogs à gauche, vérifiez que le catalogue a été supprimé.