Dataproc Metastore ist ein vollständig verwalteter, hochverfügbarer, serverloser Apache Hive-Metastore (HMS) mit automatischer Reparatur, der in ausgeführt wird Google Cloud.
Um Ihre Metadaten vollständig zu verwalten, ordnet Dataproc Metastore Ihre Daten Apache Hive Tabellen zu.
Unterstützte Apache Hive-Versionen
Dataproc Metastore unterstützt nur bestimmte Versionen von Apache Hive. Weitere Informationen finden Sie in der Hive-Versionsrichtlinie.
So verarbeitet Hive Metadaten
Da Dataproc Metastore ein Hive-Metastore ist, ist es wichtig zu verstehen, wie er Ihre Metadaten verwaltet.
Standardmäßig können alle Hive-Anwendungen verwaltete interne Tabellen oder nicht verwaltete externe Tabellen haben. Das bedeutet, dass die Metadaten, die Sie in einem Dataproc Metastore-Dienst speichern, sowohl in internen als auch in externen Tabellen vorhanden sein können.
Beim Ändern von Daten behandelt ein Dataproc Metastore-Dienst (Hive) interne und externe Tabellen unterschiedlich.
- Interne Tabellen : Verwaltet sowohl Metadaten als auch Tabellendaten.
- Externe Tabellen : Verwaltet nur Metadaten.
Wenn Sie beispielsweise eine Tabellendefinition mit der Hive-SQL-Anweisung DROP TABLE löschen:
drop table my_table
Interne Tabellen : Dataproc Metastore löscht alle Metadaten. Außerdem werden die mit der Tabelle verknüpften Dateien gelöscht.
Externe Tabellen : Dataproc Metastore löscht nur die Metadaten. Die mit der Tabelle verknüpften Daten bleiben erhalten.
Hive-Warehouse-Verzeichnis
Dataproc Metastore verwendet das Hive-Warehouse-Verzeichnis, um Ihre internen Tabellen zu verwalten. Im Hive-Warehouse-Verzeichnis werden Ihre tatsächlichen Daten gespeichert.
Wenn Sie einen Dataproc Metastore-Dienst verwenden, ist ein Cloud Storage-Bucket das standardmäßige Hive-Warehouse-Verzeichnis. Dataproc Metastore unterstützt nur die Verwendung von Cloud Storage-Buckets für das Warehouse-Verzeichnis. Im Vergleich dazu ist das bei einem lokalen HMS anders, bei dem das Hive-Warehouse-Verzeichnis normalerweise auf ein lokales Verzeichnis verweist.
Dieser Bucket wird automatisch für Sie erstellt, wenn Sie einen Dataproc Metastore-Dienst erstellen. Dieser Wert kann geändert werden, indem Sie
eine Hive-Metastore-Konfigurationsüberschreibung für die hive.metastore.warehouse.dir
Eigenschaft festlegen.
Cloud Storage-Buckets für Artefakte
Im Artefakt-Bucket werden Ihre Dataproc Metastore-Artefakte gespeichert, z. B. exportierte Metadaten und verwaltete interne Tabellendaten.
Wenn Sie einen Dataproc Metastore-Dienst erstellen, wird automatisch ein Cloud Storage-Bucket in Ihrem Projekt erstellt. Standardmäßig verweisen sowohl der Artefakt-Bucket als auch das Warehouse-Verzeichnis auf denselben Bucket. Sie können den Speicherort des Artefakt-Buckets nicht ändern, aber den Speicherort des Hive-Warehouse-Verzeichnisses.
Der Artefakt-Bucket befindet sich an folgendem Speicherort:
gs://your-artifacts-bucket/hive-warehouse.- Beispiel:
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4.
Auf das Hive-Warehouse-Verzeichnis zugreifen
Nachdem Ihr Bucket automatisch für Sie erstellt wurde, prüfen Sie, ob Ihre Managed Service for Apache Spark-Dienstkonten die Berechtigung haben, auf das Hive-Warehouse-Verzeichnis zuzugreifen.
Wenn Sie auf das Warehouse-Verzeichnis auf Objektebene zugreifen möchten (z. B. gs://mybucket/object), gewähren Sie den Managed Service for Apache Spark-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets. Verwenden Sie dazu die Rolle
roles/storage.objectAdmin. Diese Rolle muss auf Bucket-Ebene oder höher festgelegt werden.Wenn Sie auf das Warehouse-Verzeichnis zugreifen möchten, wenn Sie einen Ordner der obersten Ebene verwenden (z. B. gs://mybucket), gewähren Sie den Managed Service for Apache Spark-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets. Verwenden Sie dazu die Rolle
roles/storage.storageAdmin.
Wenn sich das Hive-Warehouse-Verzeichnis nicht im selben Projekt wie Dataproc Metastore befindet, prüfen Sie, ob der Dataproc Metastore-Dienstagent die Berechtigung hat, auf das Hive-Warehouse-Verzeichnis zuzugreifen. Der Dienst
agent für ein Dataproc Metastore-Projekt ist
service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com.
Gewähren Sie dem Dienstagenten mit der
roles/storage.objectAdmin Rolle Lese- und Schreibzugriff auf den Bucket.
Hive-Warehouse-Verzeichnis finden
- Öffnen Sie die Seite Dataproc Metastore.
Klicken Sie auf den Namen Ihres Dienstes.
Die Seite mit den Dienstdetails wird geöffnet.
Suchen Sie in der Konfigurationstabelle nach Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.
Suchen Sie nach dem Wert, der mit
gs://beginnt.Dieser Wert ist der Speicherort Ihres Hive-Warehouse-Verzeichnisses.

Hive-Warehouse-Verzeichnis ändern
Wenn Sie Ihren eigenen Cloud Storage-Bucket mit Dataproc Metastore verwenden möchten, legen Sie eine Hive-Metastore-Konfigurationsüberschreibung fest, die auf den neuen Bucket-Speicherort verweist.
Wenn Sie Ihr standardmäßiges Warehouse-Verzeichnis ändern, folgen Sie diesen Empfehlungen.
Verwenden Sie nicht das Cloud Storage-Bucket-Stammverzeichnis (
gs://mybucket), um Hive-Tabellen zu speichern.Verwenden Sie am besten Cloud Storage-Buckets, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Dataproc Metastore unterstützt zwar regionsübergreifende Buckets, aber Ressourcen am selben Standort funktionieren besser. Ein Bucket in
europe-west1funktioniert beispielsweise nicht gut mit einem Dienst inus-central1. Regionsübergreifender Zugriff führt zu einer höheren Latenz, fehlender regionaler Fehlerisolation und Gebühren für regionsübergreifende Netzwerkbandbreite.
Hive-Warehouse-Verzeichnis ändern
- Öffnen Sie die Seite Dataproc Metastore.
Klicken Sie auf den Namen Ihres Dienstes.
Die Seite mit den Dienstdetails wird geöffnet.
Suchen Sie in der Konfigurationstabelle nach dem Abschnitt Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.
Ändern Sie den Wert
hive.metastore.warehouse.dirin den Speicherort Ihres neuen Buckets. Beispiel:gs://my-bucket/path/to/location.
Bucket löschen
Beim Löschen des Dataproc Metastore-Dienstes wird nicht automatisch der Cloud Storage-Artefakt-Bucket gelöscht. Ihr Bucket wird nicht automatisch gelöscht, da er nützliche Daten über den Dienst hinaus enthalten kann. Wenn Sie Ihren Bucket löschen möchten, führen Sie einen Cloud Storage-Löschvorgang aus.