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 Metadaten 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.
Beim Ändern von Daten behandelt ein Dataproc Metastore-Dienst (Hive) internen und externen 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. 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 nutzt das Hive-Warehouse-Verzeichnis zur Verwaltung Ihre internen Tabellen. Im Hive-Warehouse-Verzeichnis befinden sich Ihre tatsächlichen Daten gespeichert sind.
Wenn Sie einen Dataproc Metastore-Dienst verwenden, wird das Hive-Standard-Warehouse das Verzeichnis ein Cloud Storage-Bucket ist. Nur Dataproc Metastore unterstützt die Verwendung von Cloud Storage-Buckets für das Warehouse-Verzeichnis. Im Gegensatz dazu unterscheidet sich dies von einem lokalen HMS, bei dem das Hive-Warehouse verweist normalerweise auf ein lokales Verzeichnis.
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 Artefakt-Bucket werden die Dataproc Metastore-Artefakte gespeichert. z. B. exportierte Metadaten und verwaltete interne Tabellendaten.
Wenn Sie einen Dataproc Metastore-Dienst erstellen, Bucket in Ihrem Projekt automatisch für Sie erstellt. Standardmäßig sind sowohl die Artefakt-Bucket und das Warehouse-Verzeichnis verweisen 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 haben die Berechtigung, auf das Hive-Warehouse-Verzeichnis zuzugreifen.
Für den Zugriff auf das Warehouse-Verzeichnis auf Objektebene (z. B. gs://mybucket/object) müssen Sie den Dataproc-Dienstkonten mit der Rolle
roles/storage.objectAdmin
Lese- und Schreibzugriff auf das Speicherobjekt des Buckets gewähren. Diese Rolle muss auf Bucket-Ebene oder höher festgelegt werden.Wenn Sie über einen Ordner der obersten Ebene (z. B. gs://mybucket) auf das Warehouse-Verzeichnis zugreifen möchten, gewähren Sie den Dataproc-Dienstkonten mit der Rolle
roles/storage.storageAdmin
Lese- und Schreibzugriff auf das Speicherobjekt des Buckets.
Wenn sich das Hive-Warehouse-Verzeichnis nicht im selben Projekt befindet wie das
Dataproc Metastore müssen, ob der Dataproc Metastore
Der Dienst-Agent hat die Berechtigung, auf das Hive-Warehouse-Verzeichnis zuzugreifen. Dienst
für ein Dataproc Metastore-Projekt ist
service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
Gewähren Sie dem Dienst-Agent Lese- und Schreibzugriff auf den Bucket mithilfe der
roles/storage.objectAdmin
-Rolle.
Hive-Warehouse-Verzeichnis finden
- Öffnen Sie die Seite Dataproc Metastore.
Klicken Sie auf den Namen Ihres Dienstes.
Die Seite „Dienstdetails“ 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 Ihr Standard-Warehouse-Verzeichnis ändern.
Verwenden Sie zum Speichern nicht das Stammverzeichnis des Cloud Storage-Bucket (
gs://mybucket
) 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 mit Cloud Storage-Buckets in der in derselben Region wie Ihr Dataproc Metastore-Dienst. Obwohl Dataproc Metastore ermöglicht regionsübergreifende Buckets, besser verteilten Ressourcen arbeiten. Beispiel: Ein multiregionaler Bucket in der EU funktioniert nicht gut mit einem
us-central1
-Dienst. Regionsübergreifender Zugriff führt zu höhere Latenz, fehlende regionale Fehlerisolierung und Gebühren für regionsübergreifende Netzwerkbandbreite.
So ändern Sie das Hive-Warehouse-Verzeichnis
- Öffnen Sie die Seite Dataproc Metastore.
Klicken Sie auf den Namen Ihres Dienstes.
Die Seite „Dienstdetails“ 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 nach dem Service enthalten könnte. So löschen Sie Ihren Bucket: Einen Cloud Storage-Löschvorgang ausführen