Dataproc Metastore ist ein vollständig verwalteter, hochverfügbarer, serverloser Apache Hive-Metastore (HMS) mit automatischer Reparatur, der auf Google Cloudausgeführt wird.
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 Metadaten verwaltet werden.
Standardmäßig können alle Hive-Anwendungen verwaltete interne Tabellen oder nicht verwaltete externe Tabellen haben. Die Metadaten, die Sie in einem Dataproc Metastore-Dienst speichern, können also sowohl in internen als auch in externen Tabellen vorhanden sein.
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 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 verwendet das Hive-Warehouse-Verzeichnis zum Verwalten Ihrer internen Tabellen. 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 verweist das Hive-Warehouse-Verzeichnis bei einem lokalen HMS in der Regel auf ein lokales Verzeichnis.
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 Property hive.metastore.warehouse.dir
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 erstellt wurde, müssen Sie dafür sorgen, dass Ihre Dataproc-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 Dataproc-Dienstkonten mit der Rolle
roles/storage.objectAdmin
Lese- und Schreibzugriff auf das Speicherobjekt des Buckets. Diese Rolle muss auf Bucket-Ebene oder höher festgelegt werden.Wenn Sie mit einem 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 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 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 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 das Standardverzeichnis für das Data Warehouse ändern, sollten Sie die folgenden Empfehlungen beachten.
Verwenden Sie nicht das Cloud Storage-Bucket-Stammverzeichnis (
gs://mybucket
) zum Speichern von Hive-Tabellen.Prüfen Sie, ob Ihr Dataproc Metastore-VM-Dienstkonto die Berechtigung hat, auf das Hive-Warehouse-Verzeichnis zuzugreifen.
Für optimale Ergebnisse sollten Sie Cloud Storage-Buckets verwenden, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Obwohl Dataproc Metastore regionsübergreifende Buckets zulässt, ist die Leistung von Ressourcen, die sich am selben Standort befinden, besser. Ein multiregionaler EU-Bucket ist beispielsweise nicht mit einem
us-central1
-Dienst kompatibel. Regionsübergreifender Zugriff führt zu einer höheren Latenz, fehlender regionaler Fehlerisolierung und Gebühren für die 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 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 von
hive.metastore.warehouse.dir
in 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 Löschvorgang für Cloud Storage aus.