Hive-Metastore

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

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

    Die Seite mit den 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.

    Werte für hive.metastore.warehouse.dir

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

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

    Die Seite mit den 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 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.

Nächste Schritte