Zum Inhalt springen

Hive Metastore

Der Hive Metastore ist der klassische Metadaten-Katalog von Apache Hive. Definition, Rolle im Lakehouse, Abgrenzung zu Unity Catalog und Glue.

Der Hive Metastore ist ein Verzeichnis für Datentabellen: eine kleine Datenbank, die sich merkt, welche Tabellen es gibt, wie ihre Spalten heißen und wo die eigentlichen Daten liegen. Ohne diesen Katalog wüssten Abfrage-Werkzeuge wie Apache Hive oder Apache Spark (Programme, die riesige Dateien wie eine SQL-Datenbank abfragen) nicht, was in den Dateien steht. Der Hive Metastore stammt aus der Hadoop-Welt und war lange der Standard für Daten, die in großen Datei-Ablagen liegen, sogenannten Data Lakes auf HDFS (Hadoop Distributed File System) oder Cloud-Speicher wie Amazon S3. Heute wird er zunehmend durch modernere Kataloge wie Unity Catalog (Databricks), AWS Glue Data Catalog (Amazon) und Iceberg REST Catalog (offener Standard) abgelöst.

Was ist der Hive Metastore?

Der Hive Metastore entstand 2008 zusammen mit Apache Hive, dem Werkzeug, mit dem sich Dateien im Hadoop-Speicher wie Datenbanktabellen per SQL abfragen lassen. Damit Hive nicht bei jeder Abfrage neu herausfinden muss, welche Dateien zu welcher Tabelle gehören und welche Spalten sie hat, brauchte es einen dauerhaften Ablage-Ort für genau diese Zusatzinformationen (Metadaten). Diese Rolle übernimmt der Hive Metastore in Form einer klassischen relationalen Datenbank, in der Tabellen-Definitionen, Partitionen (feste Unterordner nach Datum oder Region), Statistiken und Speicher-Pfade abgelegt sind. Als Datenbank kommen üblicherweise MySQL, PostgreSQL oder MariaDB zum Einsatz; in Cloud-Umgebungen auch Azure SQL DB oder Amazon RDS.

Die Architektur besteht aus zwei Komponenten. Erste Komponente ist die Metastore-Datenbank selbst mit Tabellen wie TBLS (Tabellen), SDS (Storage Descriptors), PARTITIONS und COLUMNS_V2. Zweite Komponente ist der Hive Metastore Service (HMS), ein Java-Prozess, der auf Port 9083 per Thrift-API lauscht. Query-Engines wie Hive, Spark, Trino, Presto und Impala sprechen den HMS an, um Tabellen aufzulösen, Partitionen zu ermitteln und Statistiken zu lesen. Die eigentlichen Daten liegen an den Storage-Pfaden, die der Metastore verwaltet (hdfs://, s3://, abfss://, gs://).

Der Namensraum des Hive Metastore hat zwei Ebenen (database.table, in Databricks-Kontext häufig default.<table>). Datenbanken sind logische Container ohne eigene Berechtigungslogik im ursprünglichen Metastore-Design. Objekttypen sind Managed Tables (Speicherort und Lebenszyklus liegen bei der Query-Engine, klassisch im Warehouse-Verzeichnis der Metastore-Konfiguration) und External Tables (Speicherort explizit per LOCATION-Klausel gesetzt, Lebenszyklus außerhalb der Engine).

Auf Databricks war der Hive Metastore bis zum Rollout des Unity Catalog 2022 der Default-Katalog jedes Workspaces. Seither wird der klassische Metastore als Katalog hive_metastore unter dem neuen Drei-Ebenen-Namensraum (catalog.schema.table) weitergeführt und kann per Hive-Metastore-Federation unter Unity-Catalog-Governance sichtbar gemacht werden. Die klassischen Grenzen des Designs bleiben dabei bestehen: keine Katalog-übergreifende Governance, keine feingranularen Row- oder Column-Level-Berechtigungen auf Katalog-Ebene, keine automatische Lineage, keine Cross-Workspace-Föderation. Berechtigungen laufen historisch über Hadoop Ranger oder Cloud-native ACLs, die Ownership-Ebene fehlt in der Metastore-Datenbank selbst.

Abgrenzung gegen Unity Catalog, Glue Data Catalog, Iceberg REST Catalog und Data Catalog

Der Begriff wird häufig mit benachbarten Katalog-Konzepten vermischt, die entweder ein modernerer Ersatz oder eine andere Katalog-Ebene sind.

KatalogAchseKernunterschied
Unity CatalogNachfolgerDatabricks-nativer Nachfolger mit Drei-Ebenen-Namensraum (catalog.schema.table), zentraler Berechtigungs- und Lineage-Ebene, automatischen Column- und Row-Filtern sowie Föderation für Fremdkataloge. Der Hive Metastore wird darunter als Katalog hive_metastore weitergeführt, ist aber nicht Teil der Unity-Governance.
AWS Glue Data CatalogAWS-AusprägungServerless-Managed-Metastore mit HMS-kompatibler API, in AWS IAM integriert, gemeinsam nutzbar von Athena, EMR, Redshift Spectrum und Glue-ETL. Funktional näher am Hive Metastore als am Unity Catalog (kein Drei-Ebenen-Katalog), dafür AWS-tief integriert.
Iceberg REST CatalogOffener StandardOffener REST-Katalog-Standard der Apache-Iceberg-Community, unabhängig von einer bestimmten Engine oder Datenbank-Technologie. Nur für Iceberg-Tabellen. Bringt Snapshot-Isolation und Schema-Evolution auf Katalog-Ebene und ist der aktuelle Trend für offene Lakehouse-Architekturen.
Data Catalog (fachlich)EbeneEin fachlicher Data Catalog wie Collibra, Alation, Atlan oder Microsoft Purview ist der Metadaten- und Discovery-Layer für Ownership, Business Glossary, Klassifikation und Lineage über Plattformgrenzen hinweg. Der Hive Metastore bleibt darunter eine technische Katalog-Schicht für Query-Engines.

Unity Catalog ersetzt den Hive Metastore auf Databricks als primärer Katalog. Der Namensraum wechselt von database.table auf catalog.schema.table; Berechtigungen, Lineage und feingranulare Filter liegen zentral im Katalog. Der klassische Metastore bleibt als Sub-Katalog hive_metastore lesbar und über Federation an die Unity-Governance angebunden.

AWS Glue Data Catalog ist funktional der direkte Cloud-Ersatz für den selbstgehosteten Hive Metastore. Die API ist zum Hive Metastore weitgehend kompatibel; Athena, EMR und Redshift Spectrum sprechen den Glue-Katalog wie einen HMS an. Die Katalog-Struktur bleibt zweistufig (database.table), zusätzlich stehen IAM-basierte Berechtigungen und Lake-Formation-Grants bereit.

Iceberg REST Catalog verfolgt ein anderes Modell: ein offener, engine-neutraler Katalog-Standard, ausschließlich für Apache-Iceberg-Tabellen. Snapshot-Isolation, atomare Metadaten-Updates und Schema-Evolution sind Teil der Katalog-Semantik und nicht der Query-Engine.

Ein fachlicher Data Catalog schließlich beantwortet eine andere Frage: Welche Daten gibt es und was bedeuten sie? Er inventarisiert Datenbestände plattform-übergreifend und ergänzt Ownership, Klassifikation und Business-Kontext. Der Hive Metastore ist demgegenüber ein technischer Katalog für Query-Engines und weiß nichts über fachliche Bedeutung.

Beispiel: Legacy-Hive-Metastore neben Unity Catalog auf Databricks

Ein Databricks-Workspace, angelegt vor dem Unity-Catalog-Rollout, betreibt hunderte Tabellen im Hive Metastore. Unter der Datenbank analytics liegen etwa analytics.orders, analytics.customers und analytics.line_items. Die Tabellen sind als External Tables mit einer LOCATION-Klausel auf ADLS Gen2 registriert und im Delta-Format gespeichert.

Ein Job-Cluster liest über Spark SQL:

sql
SELECT COUNT(*) FROM analytics.orders WHERE order_date >= '2026-07-01';

Spark schickt eine Metadata-Anfrage an den Hive Metastore Service, bekommt Schema und Storage-Pfad zurück, öffnet das Delta-Log am Pfad und liefert das Ergebnis. Nach dem Upgrade auf Unity Catalog bleibt der Hive Metastore als Katalog hive_metastore erhalten; die Tabellen sind weiterhin unter hive_metastore.analytics.orders lesbar. Governance-fähige Neuanlagen wandern in einen neuen Katalog wie analytics_prod unter Unity-Catalog-Governance. Zusätzlich kann per Hive-Metastore-Federation der Bestand des klassischen Metastore als eigener Foreign Catalog unter Unity-Catalog-Berechtigungen sichtbar gemacht werden, ohne die Tabellen zu migrieren.

Hive Metastore im eigenen Unternehmen umsetzen?

Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.

Gespräch vereinbaren