Hive-Metastore

Dataproc Metastore ist ein vollständig verwalteter, hochverfügbarer, serverloser Apache Hive-Metastore (HMS), der mit automatischer Reparatur und automatischer Reparatur in Google Cloud ausgeführt wird.

Zur vollständigen Verwaltung Ihrer Metadaten 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 für die Hive-Version.

So verarbeitet Hive Metadaten

Da es sich bei Dataproc Metastore um einen Hive-Metastore handelt, ist es wichtig, dass Sie wissen, wie damit Ihre 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, geschieht Folgendes:

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 zur Verwaltung Ihrer internen Tabellen. Im Hive-Warehouse-Verzeichnis werden Ihre eigentlichen 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 einem lokalen HMS, bei dem das Hive-Warehouse-Verzeichnis normalerweise auf ein lokales Verzeichnis verweist.

Dieser Bucket wird jedes Mal automatisch für Sie 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.

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, wird in Ihrem Projekt automatisch ein Cloud Storage-Bucket erstellt. Standardmäßig verweisen sowohl der Artefakte-Bucket als auch das Warehouse-Verzeichnis auf denselben Bucket. Der Speicherort des Artefakt-Buckets kann nicht geändert werden, aber Sie haben die Möglichkeit, den Speicherort des Hive-Warehouse-Verzeichnisses zu ä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

Achten Sie nach der automatischen Erstellung des Buckets darauf, dass Ihre Dataproc-Dienstkonten zum Zugriff auf das Hive-Warehouse-Verzeichnis berechtigt sind.

  • 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 wie der 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 finden

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

    Die Seite „Dienstdetails“ 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

Wenn Sie Ihren eigenen Cloud Storage-Bucket mit Dataproc Metastore verwenden möchten, 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 von Hive-Tabellen nicht den Cloud Storage-Bucket-Stamm (gs://mybucket).

  • Achten Sie darauf, dass 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. Dataproc Metastore lässt zwar regionsübergreifende Buckets zu, doch erzielen Sie mit zusammengelegten Ressourcen eine bessere Leistung. Ein multiregionaler Bucket in der EU funktioniert beispielsweise nicht gut mit einem us-central1-Dienst. Der regionsübergreifende Zugriff führt zu einer höheren Latenz, einer fehlenden Isolation regionaler Fehler und Gebühren für die regionsübergreifende Netzwerkbandbreite.

So ändern Sie das Hive-Warehouse-Verzeichnis

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

    Die Seite „Dienstdetails“ wird geöffnet.

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

  4. Ändern Sie den Wert hive.metastore.warehouse.dir in den Speicherort 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 Daten nach dem Dienst enthält. Führen Sie zum Löschen des Buckets einen Cloud Storage-Löschvorgang aus.

Nächste Schritte