Dataproc Metastore ist ein vollständig verwalteter, hochverfügbarer serverloser Apache Hive-Metastore (HMS) mit automatischer Reparatur, der in Google Cloud ausgeführt wird.
Damit Sie Ihre Metadaten vollständig verwalten können, 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 Richtlinie zur Hive-Version.
So verarbeitet Hive Metadaten
Da Dataproc Metastore ein Hive-Metastore ist, sollten Sie wissen, 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.
Beispiel: Sie löschen eine Tabellendefinition mit der Hive-SQL-Anweisung DROP TABLE
:
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 werden beibehalten.
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 das standardmäßige 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 einer lokalen HMS, bei der das Hive-Warehouse-Verzeichnis normalerweise auf ein lokales Verzeichnis verweist.
Dieser Bucket wird jedes Mal automatisch erstellt, wenn Sie einen Dataproc Metastore-Dienst erstellen. Sie können diesen Wert ändern, indem Sie eine Hive Metastore-Konfigurationsüberschreibung für das Attribut hive.metastore.warehouse.dir
festlegen.
Artefakte in Cloud Storage-Buckets
Im Artefakt-Bucket werden 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 für Sie erstellt. Standardmäßig verweisen der Artefakt-Bucket und das Warehouse-Verzeichnis auf denselben Bucket. Sie können den Speicherort des Artefakt-Buckets nicht ändern. Sie können jedoch 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 erstellt wurde, sollten Sie prüfen, ob Ihre Dataproc-Dienstkonten die Berechtigung für den Zugriff auf das Hive-Warehouse-Verzeichnis haben.
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 einen Ordner der obersten Ebene verwenden, z. B. gs://mybucket, können Sie auf das Warehouse-Verzeichnis zugreifen. 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 wie Dataproc Metastore befindet, prüfen Sie, ob der Dataproc Metastore-Dienst-Agent die Berechtigung für den Zugriff auf das Hive-Warehouse-Verzeichnis hat. 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 suchen
- Ö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 den Wert, der mit
gs://
beginnt.Dieser Wert ist der Speicherort Ihres Hive-Warehouse-Verzeichnisses.
Hive-Warehouse-Verzeichnis ändern
Wenn Sie einen 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.
Folgen Sie diesen Empfehlungen, wenn Sie Ihr Standard-Warehouse-Verzeichnis ändern.
Verwenden Sie zum Speichern von Hive-Tabellen nicht den Cloud Storage-Bucket-Stamm (
gs://mybucket
).Prüfen Sie, ob Ihr Dataproc Metastore-VM-Dienstkonto die Berechtigung zum Zugriff auf das Hive-Warehouse-Verzeichnis hat.
Die besten Ergebnisse erzielen Sie, wenn Sie Cloud Storage-Buckets verwenden, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Auch wenn Dataproc Metastore regionsübergreifende Buckets zulässt, erzielen Sie mit am selben Standort befindlichen Ressourcen eine bessere Leistung. Ein multiregionaler EU-Bucket funktioniert beispielsweise 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 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 den Abschnitt Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.
Ändern Sie den Wert
hive.metastore.warehouse.dir
in den Standort des neuen Buckets. Beispiel:gs://my-bucket/path/to/location
.
Bucket löschen
Durch das Löschen des Dataproc Metastore-Dienstes wird der Cloud Storage-Artefakt-Bucket nicht automatisch gelöscht. Der Bucket wird nicht automatisch gelöscht, da er möglicherweise nützliche Post-Service-Daten enthält. Führen Sie einen Cloud Storage-Löschvorgang aus, um den Bucket zu löschen.