Dataproc Metastore ist eine vollständig verwaltete, hochverfügbare serverloser Apache Hive-Metastore (HMS) mit automatischer Reparatur, der in Google Cloud ausgeführt wird.
Zur vollständigen Verwaltung Ihrer Metadaten ordnet Dataproc Metastore Daten zu Apache Hive Tabellen.
Unterstützte Apache Hive-Versionen
Dataproc Metastore unterstützt nur bestimmte Versionen von Apache Hive. Weitere Informationen finden Sie in der Richtlinie für die Hive-Version.
So verarbeitet Hive Metadaten
Da Dataproc Metastore ein Hive-Metastore ist, ist es wichtig zu verstehen, wie Ihre Metadaten damit verwaltet werden.
Standardmäßig können alle Hive-Anwendungen verwaltete interne Tabellen oder Nicht verwaltete externe Tabellen. Die Metadaten, die Sie in einem Der Dataproc Metastore-Dienst kann sowohl in internen als auch in externen Tabellen vorhanden sein.
Bei der Datenänderung 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 dem Hive-SQL DROP TABLE
löschen,
Anweisung:
drop table foo
Interne Tabellen. In Dataproc Metastore werden alle Metadaten gelöscht. Außerdem werden die mit der Tabelle verknüpften Dateien gelöscht.
Externe Tabellen. In Dataproc Metastore werden nur die Metadaten gelöscht. 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 befinden sich Ihre tatsächlichen Daten gespeichert sind.
Wenn Sie einen Dataproc Metastore-Dienst verwenden, ist das Standard-Hive-Warehouse-Verzeichnis ein Cloud Storage-Bucket. Dataproc Metastore unterstützt nur die Verwendung von Cloud Storage-Buckets für das Warehouse-Verzeichnis. Im Vergleich dazu unterscheidet sich dies von einem On-Premise-HMS, bei dem das Hive-Lagerverzeichnis normalerweise auf ein lokales Verzeichnis verweist.
Dieser Bucket wird jedes Mal automatisch für Sie erstellt, wenn Sie einen
Dataproc Metastore-Dienst Sie können diesen Wert ändern, indem Sie
Hive Metastore-Konfigurationsüberschreibung für hive.metastore.warehouse.dir
Property.
Cloud Storage-Buckets für Artefakte
Im Artifacts-Bucket werden Ihre Dataproc Metastore-Artefakte gespeichert, z. B. exportierte Metadaten und verwaltete interne Tabellendaten.
Wenn Sie einen Dataproc Metastore-Dienst erstellen, wird in Ihrem Projekt automatisch ein Cloud Storage-Bucket erstellt. Standardmäßig verweisen sowohl der Bucket „artifacts“ als auch das Warehouse-Verzeichnis auf denselben Bucket. Ich können Sie den Standort des Artefakt-Buckets nicht ändern. den Speicherort des Hive-Warehouse-Verzeichnisses ändern.
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 der Bucket automatisch für Sie erstellt wurde, prüfen Sie, ob Ihre Dataproc-Dienstkonten berechtigt sind, 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 Dataproc-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets mit der Rolle
roles/storage.objectAdmin
. Diese Rolle muss auf Bucket-Ebene oder höher festgelegt werden.Wenn Sie das Warehouse-Verzeichnis über einen Ordner der obersten Ebene aufrufen möchten (z. B. gs://mybucket), gewähren Sie den Dataproc-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets mit der Rolle
roles/storage.storageAdmin
.
Wenn sich das Hive-Warehouse-Verzeichnis nicht im selben Projekt wie der Dataproc Metastore befindet, muss der Dataproc Metastore-Dienst-Agent Zugriff auf das Hive-Warehouse-Verzeichnis haben. Der Dienst-Agent für ein Dataproc Metastore-Projekt ist service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
.
Gewähren Sie dem Dienst-Agent mit der Rolle roles/storage.objectAdmin
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 Servicedetails wird geöffnet.
Suchen Sie in der Konfigurationstabelle nach Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.
Suchen Sie den Wert, der mit
gs://
beginnt.Dieser Wert ist der Speicherort Ihres Hive-Warehouse-Verzeichnisses.
Hive-Warehouse-Verzeichnis ändern
So verwenden Sie einen eigenen Cloud Storage-Bucket mit Dataproc Metastore: Legen Sie eine Hive Metastore-Konfigurationsüberschreibung so fest, dass sie auf den Speicherort des neuen Buckets verweist.
Folgen Sie diesen Empfehlungen, wenn Sie das Standard-Warehouse-Verzeichnis ändern.
Verwenden Sie nicht das Cloud Storage-Bucket-Stammverzeichnis (
gs://mybucket
) zum Speichern von Hive-Tabellen.Prüfen Sie, ob Ihr Dataproc Metastore-VM-Dienstkonto hat die Berechtigung, auf das Hive-Warehouse-Verzeichnis zuzugreifen.
Die besten Ergebnisse erzielen Sie, wenn Sie Cloud Storage-Buckets verwenden, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Obwohl Dataproc Metastore regionenübergreifende Bucket ermöglicht, sind gemeinsam bereitgestellte Ressourcen leistungsfähiger. Beispiel: Ein multiregionaler Bucket in der EU funktioniert nicht gut mit einem
us-central1
-Dienst. Der regionsübergreifende Zugriff führt zu einer höheren Latenz, fehlender regionaler Fehlerisolierung und Gebühren für die regionenübergreifende Netzwerkbandbreite.
Hive-Warehouse-Verzeichnis ändern
- Öffnen Sie die Seite Dataproc Metastore.
Klicken Sie auf den Namen Ihres Dienstes.
Die Seite mit den Servicedetails wird geöffnet.
Suchen Sie in der Konfigurationstabelle nach den Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.
Ändern Sie den Wert für
hive.metastore.warehouse.dir
in den Speicherort des neuen Bucket. Beispiel:gs://my-bucket/path/to/location
.
Bucket löschen
Das Löschen des Dataproc Metastore-Dienstes erfolgt nicht automatisch Löschen Sie den Cloud Storage-Artefakt-Bucket. Ihr Bucket wird nicht automatisch gelöscht, da er nützliche Daten über den Dienst hinaus enthalten kann. So löschen Sie den Bucket: Einen Cloud Storage-Löschvorgang ausführen