Catalogue Hive
Aperçu
Le Catalogue Hive est un catalogue de métadonnées largement utilisé pour les environnements Spark, Hadoop et Big Data. À la base, il stocke les schémas de table, les emplacements et d’autres métadonnées dans une base de données centrale appelée Ruche Metastore. Cela permet à Spark et à d’autres moteurs de calcul de rechercher et d’accéder de manière cohérente aux tables dans plusieurs travaux et sessions.
En termes plus simples, Hive Catalog is like a registry or "table of contents" for your data lake. It keeps track of which tables exist, their schemas, partitions, and where their data physically resides (for example, on HDFS, S3, or MinIO).
Ilum intègre en profondeur Hive Catalog, ce qui en fait le catalogue par défaut pour toutes les requêtes, tâches et groupes SQL, à moins qu’un autre ne soit spécifié.
Contrairement aux catalogues de type Git (par exemple, Nessie), Hive ne suit que les État le plus récent de chaque table ; C’est le cas non Prenez en charge les branchements, l’historique des validations ou les voyages dans le temps dans l’ensemble du catalogue. Cependant, il est fiable, mature et universellement compatible avec un immense écosystème.

Hive et autres catalogues de données
Here’s how Hive Catalog compares with modern alternatives like Nessie or AWS Glue:
-
Aucun contrôle de version : Hive keeps only the most recent version of each table. It does not support branching, tagging, or commit history at the catalog level. To track historical states, you must rely on table-format-specific features (like Iceberg’s or Delta’s time travel), not Hive itself.
-
Métadonnées centralisées : Les schémas de table, les emplacements et le partitionnement sont stockés dans la base de données Hive Metastore. Cela garantit des métadonnées cohérentes entre tous les travaux et moteurs Spark utilisant le catalogue.
-
Compatibilité universelle : Hive Metastore est pris en charge par presque tous les moteurs de big data (Spark, Hive, Trino, Flink, etc.), ce qui en fait un modèle par défaut sûr pour les environnements à technologie mixte.
-
Pas de transactions multi-tables : Les transactions atomiques au niveau du catalogue (couvrant plusieurs tables à la fois) sont non supporté. Chaque opération DDL/DML est gérée séparément.
-
Pas d’isolation de branche : To isolate dev/staging/prod environments, you must maintain multiple catalogs or databases, or physically copy data. There is no "branching" mechanism built in.
Concepts de base dans le catalogue Hive
Ruche Metastore
Le Ruche Metastore est un service et une base de données de sauvegarde (souvent PostgreSQL ou MySQL) où toutes les métadonnées concernant les tables, les vues et les partitions sont stockées.
Chaque fois que Spark ou un autre moteur interroge une table, il recherche les détails dans le Metastore Hive.
Tables, bases de données et stockage
- Tables Définissez le schéma et l’emplacement de stockage de vos jeux de données.
- Bases dans Hive sont des espaces de noms pour regrouper les tables associées.
- Emplacement de l’entrepôt est le dossier racine (sur HDFS, S3 ou un autre stockage) où résident les fichiers de données de table.
Utilisation de Hive Catalog dans Ilum
Ilum configure automatiquement le catalogue Hive par défaut pour les travaux Spark, les requêtes SQL Viewer et les groupes de pipelines.
Vous pouvez exécuter des commandes SQL standard telles que :
CRÉER BASE DE DONNÉES SI NON EXISTE mydb;
CRÉER TABLE SI NON EXISTE mydb.ventes (date CORDE, quantité INT);
INSÉRER DANS mydb.ventes VALEURS ('2025-06-01', 1000);
CHOISIR * DE mydb.ventes;
Configuration Spark pour Hive
Si vous exécutez Spark manuellement, définissez les paramètres suivants pour activer la prise en charge de Hive :
spark.sql.catalogImplementation=ruche
spark.hadoop.hive.metastore.uris=thrift ://ilum-hive-metastore :9083
Toutefois Ilum s’en charge pour vous in all standard workflows. No manual configuration is required.
Configuration du Metastore Hive dans Ilum
Normalement, l’utilisation de Hive Catalog nécessite :
- Installation du service Hive Metastore.
- Configuration d’une base de données de sauvegarde (comme PostgreSQL ou MySQL) pour les métadonnées.
- Connexion du service à votre stockage d’objets (HDFS, S3, MinIO, GCS, WASBS).
- Configuration des options de sécurité, de réseau et de stockage.
Ilum automatise toutes ces étapes !
Lorsque vous déployez Ilum via Helm, il provisionne pour vous l’intégration Hive Metastore, la base de données et le stockage d’objets.
Activation de Hive Metastore
Pour activer Hive Metastore dans Ilum, ajoutez ces indicateurs à votre mise à niveau/installation Helm :
Mise à niveau Helm \
--poser ilum-hive-metastore.enabled=vrai \
--poser ilum-core.metastore.enabled=vrai \
--poser ilum-core.metastore.type=ruche \
--reuse-values ilum ilum/ilum
After running the Mise à niveau Helm command, navigate to the Edit Cluster tab for the cluster where you want to use the catalog and select it in the General metastore dropdown:

Utilisation des informations d’identification PostgreSQL personnalisées
Si vous souhaitez utiliser une base de données PostgreSQL personnalisée pour le Metastore Hive :
Mise à niveau Helm \
--poser postgresql.auth.username=customuser \
--poser postgresql.auth.password="CHOOSE PASSWORD" \
--reuse-values ilum ilum/ilum
Configurez Hive Metastore pour utiliser ces informations d’identification :
Mise à niveau Helm \
--poser ilum-hive-metastore.postgresql.auth.password="CHOOSE PASSWORD" \
--poser ilum-hive-metastore.postgresql.auth.username=customuser \
--reuse-values ilum ilum/ilum
Configuration de Hive Metastore : Stockage
Le stockage, également appelé entrepôt, est l’emplacement où les données réelles sont stockées. Hive prend en charge divers backends de stockage, notamment :
- HDFS (Système de fichiers distribués Hadoop)
- Amazon S3 Godets et MinIO
- Stockage Google Cloud (GCS)
- Objet blob de stockage Windows Azure (WASBS)
En règle générale, vous devez configurer l’une de ces options de stockage et configurer la connexion au metastore de Hive en conséquence dans un fichier XML.
Cependant, avec Ilumle S3 MinIO Le stockage est préconfiguré pour vous, et le Metastore Hive est déjà configuré pour l’utiliser par défaut. Configuration d’autres backends de stockage
Si vous préférez utiliser un autre backend de stockage, vous pouvez configurer Hive pour qu’il fonctionne avec celui-ci en reconfigurant vos valeurs helm :
Pour S3 stockage ou MinIO:
Mise à niveau Helm
--poser ilum-hive-metastore.storage.type=« S3 » \
--poser ilum-hive-metastore.storage.metastore.warehouse="s3a://yourbucket/yourfolder" \
--poser ilum-hive-metastore.storage.s3.accessKey="your_access_key" \
--poser ilum-hive-metastore.storage.s3.secretKey="your_secret_key" \
--poser ilum-hive-metastore.storage.s3.host="yourhost" \
--poser ilum-hive-metastore.storage.s3.port=yourport \
--reuse-values ilum ilum/ilum
Pour CGV:
Mise à niveau Helm
--poser ilum-hive-metastore.storage.type="gcs" \
--poser ilum-hive-metastore.storage.metastore.warehouse="gs://my-gcs-bucket/path/to/folder/" \
--poser ilum-hive.metastore.storage.gcs.clientEmail="your@email" \
--poser ilum-hive-metastore.storage.gcs.privateKey="yourprivatekey" \
--poser ilum-hive-metastore.storage.gcs.privateKeyId="privatekeyid" \
--reuse-values ilum ilum/ilum
Pour WASBS:
Mise à niveau Helm
--poser ilum-hive-metastore.storage.type="wasbs" \
--poser ilum-hive-metastore.storage.metastore.warehouse="wasbs://[email protected]/path/to/folder/" \
--poser ilum-hive-metastore.storage.wasbs.accountName="youraccountname" \
--poser ilum-hive-metastore.storage.wasbs.accessKey="youraccesskey" \
--reuse-values ilum ilum/ilum
Pour HDFS:
Ici, vous devrez spécifier vos configurations hdfs dans
ilum-hive-metastore.storage.hdfs.config
Vous pouvez les fournir en hdfs-config.yaml:
Mise à niveau Helm
--poser ilum-hive-metastore.storage.type="hdfs" \
--poser ilum-hive-metastore.storage.metastore.warehouse="hdfs://node:port/path/to/folder" \
--poser ilum-hive-metastore.storage.hdfs.hadoopUsername="yourusername" \
--reuse-values ilum ilum/ilum \
-f hdfs-config.yaml
Hive 4 deployment
Ilum supports Apache Hive 4.x metastores alongside the default Hive 3.x deployment. A single Ilum instance can serve both versions concurrently — each Metastore record routes to the correct backend automatically based on its Version champ.
When to use Hive 4
- New transactional metadata features (
SCHEDULED_QUERIES,STORED_PROCS,DATACONNECTORS, REST catalog). - Smaller standalone-metastore distribution (~443 MB image vs. 1.4 GB full Hive distribution).
- Schema migrations are simpler —
schematool -initOrUpgradeSchemais idempotent in Hive 4.
Differences from Hive 3 you should know
- The Hive 4 image is operations-only —
start-metastoreetschematool. There is norucheCLI, nobeeline, nometatool. If operators rely onmetatoolpour-listFSRoot,-updateLocationou-executeJDOQL, keep a Hive 3 deployment. - A Hive 3 client cannot drive a Hive 4 server. Spark's bundled Hive client is older than Hive 3, so any cluster querying a Hive 4 metastore must use the matching Spark image (see "Spark: use the Hive 4 Spark image" below).
- Migration from Hive 3 to Hive 4 is in place — Ilum runs
schematooldans-initOrUpgradeSchemamode whenmajorVersion: 4is set, and existing databases, tables, partitions, and column statistics are preserved without a data dump. The upgrade is idempotent, so re-running against an already-v4 schema is a no-op. A single Postgres database can only host one Hive schema version at a time, so running v3 and v4 side by side requires separate databases (see "Mixed v3 + v4" below).
Helm: deploying a Hive 4 metastore
Mise à niveau de Helm Ilum Ilum/ILUM \
--poser ilum-hive-metastore.image=ilum/hive:4.2.0 \
--poser ilum-hive-metastore.majorVersion=4 \
--poser ilum-core.metastore.hive.version=4.2.0 \
--reuse-values
All three flags are required and must be set in lockstep:
ilum-hive-metastore.image— the Hive 4 image. Use Ilum's publishedilum/hive:4.2.0; the stock upstreamapache/hive:standalone-metastore-4.ximages lack the PostgreSQL JDBC driver and cannot connect to the bundled PostgreSQL backend.ilum-hive-metastore.majorVersion— selects v4 mode in the metastore chart (init/upgrade behavior and start command).ilum-core.metastore.hive.version— should match the Hive 4 image's version. The Ilum backend uses the major component to route between the Hive 3 and Hive 4 clients; values starting with4.select the Hive 4 client.
Helm rejects an install ou upgrade that sets these inconsistently — the chart's template-time check fires with a clear error naming the two flags that need to align. The check applies only when the bundled metastore is enabled and the Ilum backend is configured to target it; deployments using an external Hive Metastore are not gated by the check.
Upgrading an existing Hive 3 deployment in place
The same three flags upgrade an existing Hive 3 deployment to Hive 4 in place, preserving the contents of the metastore database. The upgrade has been verified end-to-end against a populated Hive 3 database: existing tables remain queryable and writes continue to succeed after the upgrade.
Pre-flight
- Snapshot the metastore database. Always take a backup before upgrading production data, even though the upgrade is designed to be resumable on failure.
- Plan a maintenance window. The metastore is unavailable while the schema upgrade runs. Expect under two minutes on a small metastore (< 10k tables); larger catalogs take proportionally longer.
Run the upgrade
-
Run
Mise à niveau Helmwith the three lockstep flags. Helm will reject the command if any of the three is missing or inconsistent.Mise à niveau de Helm Ilum Ilum/ILUM \
--reuse-values \
--poser ilum-hive-metastore.image=ilum/hive:4.2.0 \
--poser ilum-hive-metastore.majorVersion=4 \
--poser ilum-core.metastore.hive.version=4.2.0 -
Wait for the Hive Metastore and Ilum backend Pods to roll out. The new Hive Metastore Pod runs the schema upgrade in its init container before serving requests.
kubectl rollout status -n $NS sts/ilum-hive-metastore
kubectl rollout status -n $NS deploy/ilum-core
Update the cluster's Spark image
- Spark clusters attached to a Hive 4 metastore must run the matching Spark image. Set the default cluster's container image to the
-delta-hive4variant either in the Edit Cluster UI (set Container image Àilum/spark:4.1.2-delta-hive4) or via API ondefaultApplicationConfig.spark.kubernetes.container.image. The Spark configuration needed to use the v4 client is injected automatically; selecting the image is the only required step.
Verify
-
Confirm post-upgrade health via the API:
GET /api/dev/reactive/metastorereturns the default metastore record withversion="4.2.0". -
Run a representative SQL workload to confirm pre-upgrade tables are still queryable and writes still succeed:
MONTRER DATABASES;
MONTRER TABLES IN <db>;
CHOISIR * DE <db>.<table> LIMIT 10;
INSÉRER DANS <db>.<table> VALEURS (...);
Rollback
To roll back, restore the metastore database from the snapshot taken in step 1, then re-run Mise à niveau Helm with the original Hive 3 flags (ilum-hive-metastore.image=ilum/hive:3.1.3, ilum-hive-metastore.majorVersion=3, ilum-core.metastore.hive.version=3.1.3) and swap the cluster's Spark image back to the standard (non -hive4) variant.
Helm values are the source of truth for the default metastore
The default Metastore record is created from the Ilum backend's helm values at startup. The address, Versionet warehouseDir fields are overwritten from helm on every pod restart, so a Mise à niveau Helm that changes any of them takes effect automatically on the next rollout. The description et configuration fields are preserved across restarts and are the right place for per-deployment customisations (such as extra Spark or Hive client settings).
Changes made to address, Versionou warehouseDir directly through the API or UI will not survive a restart. To change them durably, update the helm values and run Mise à niveau Helm.
For deployments that use an externally-managed Hive Metastore, ilum-core.metastore.hive.version is the operator's responsibility to keep aligned with the external service's actual major version.
Spark: use the Hive 4 Spark image
Stock Spark images cannot drive a Hive 4 metastore because their bundled Hive client is too old. Ilum publishes a Spark image with the Hive 4 client pre-staged:
ilum/spark:4.1.2-delta-hive4
Set this as the cluster's container image whenever the cluster is attached to a Hive 4 metastore:
- Dans le Edit Cluster UI, set Container image À
ilum/spark:4.1.2-delta-hive4. - Or via API on the cluster's
defaultApplicationConfig:spark.kubernetes.container.image=ilum/spark:4.1.2-delta-hive4.
No further Spark configuration is needed; the relevant settings are injected automatically when the metastore record's Version starts with "4.". The image is compatible with Hive 4.0, 4.1, and 4.2 metastores.
To use a custom Spark image with the Hive 4 client at a different path, set spark.sql.hive.metastore.jars on the metastore record's configuration map — the entry there takes precedence over the default.
Mixed v3 + v4 in one Ilum instance
Both a Hive 3 and a Hive 4 Metastore can be registered in the same Ilum instance — Ilum routes per-record to the matching client. Two extra constraints when running them side by side:
- Separate Postgres databases. A single database can host only one Hive schema version. Set
--set ilum-hive-metastore.postgresql.database=metastore_v4(or any unused name) on the Hive 4 release; Hive 3 stays on the defaultmetastoredatabase. The umbrella chart'spostgresExtensions.databasesToCreateneeds the extra database name so the bootstrap job creates it. - Two clusters. Each cluster's Spark image must match its metastore's Hive version. Run two clusters and attach each to the corresponding metastore record.
Bonnes pratiques et recommandations
- Utilisez Hive pour une compatibilité maximale : Hive Metastore is the universal “common denominator” for big data engines.
- Pour le contrôle de version, utilisez iceberg ou nessie : If you need branching, time travel, or commit history, combine Hive Catalog with a table format (like Iceberg) that supports these features, or use Nessie as your catalog.
- Sécurisez votre Metastore : Utilisez toujours des informations d’identification fortes et des restrictions réseau pour votre base de données et votre service Hive Metastore.
- Surveiller le stockage en entrepôt : Assurez-vous que votre entrepôt (MinIO, S3, HDFS, etc.) est sauvegardé et surveillé pour son état et l’espace disponible.
Pour en savoir plus
Pour plus d’informations sur l’utilisation de Hive Catalog, consultez la section Documentation de Hive Metastore.
Pour obtenir une configuration détaillée d’Ilum et des références Helm, consultez le Guide de démarrage d’Ilum.
Hive Catalog in Ilum combines ease of use, automation, and broad compatibility, giving you a robust foundation for SQL analytics and data engineering at scale.