Hive-Metastore

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

  1. Öffnen Sie die Seite Dataproc Metastore.
  2. Klicken Sie auf den Namen Ihres Dienstes.

    Die Seite mit den Servicedetails wird geöffnet.

  3. Suchen Sie in der Konfigurationstabelle nach Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.

  4. Suchen Sie den Wert, der mit gs:// beginnt.

    Dieser Wert ist der Speicherort Ihres Hive-Warehouse-Verzeichnisses.

    hive.metastore.warehouse.dir-Werte

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

  1. Öffnen Sie die Seite Dataproc Metastore.
  2. Klicken Sie auf den Namen Ihres Dienstes.

    Die Seite mit den Servicedetails wird geöffnet.

  3. Suchen Sie in der Konfigurationstabelle nach den Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.

  4. Ä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

Nächste Schritte