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 Metadaten 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.

Beim Ändern von Daten behandelt ein Dataproc Metastore-Dienst (Hive) internen und externen 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. 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 nutzt das Hive-Warehouse-Verzeichnis zur Verwaltung Ihre internen Tabellen. Im Hive-Warehouse-Verzeichnis befinden sich Ihre tatsächlichen Daten gespeichert sind.

Wenn Sie einen Dataproc Metastore-Dienst verwenden, wird das Hive-Standard-Warehouse das Verzeichnis ein Cloud Storage-Bucket ist. Nur Dataproc Metastore unterstützt die Verwendung von Cloud Storage-Buckets für das Warehouse-Verzeichnis. Im Gegensatz dazu unterscheidet sich dies von einem lokalen HMS, bei dem das Hive-Warehouse verweist normalerweise auf ein lokales Verzeichnis.

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 Artefakt-Bucket werden die Dataproc Metastore-Artefakte gespeichert. z. B. exportierte Metadaten und verwaltete interne Tabellendaten.

Wenn Sie einen Dataproc Metastore-Dienst erstellen, Bucket in Ihrem Projekt automatisch für Sie erstellt. Standardmäßig sind sowohl die Artefakt-Bucket und das Warehouse-Verzeichnis verweisen 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 haben die Berechtigung, auf das Hive-Warehouse-Verzeichnis zuzugreifen.

  • 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 befindet wie das Dataproc Metastore müssen, ob der Dataproc Metastore Der Dienst-Agent hat die Berechtigung, auf das Hive-Warehouse-Verzeichnis zuzugreifen. Dienst für ein Dataproc Metastore-Projekt ist service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com Gewähren Sie dem Dienst-Agent Lese- und Schreibzugriff auf den Bucket mithilfe der roles/storage.objectAdmin-Rolle.

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

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 Ihr Standard-Warehouse-Verzeichnis ändern.

  • Verwenden Sie zum Speichern nicht das Stammverzeichnis des Cloud Storage-Bucket (gs://mybucket) 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 mit Cloud Storage-Buckets in der in derselben Region wie Ihr Dataproc Metastore-Dienst. Obwohl Dataproc Metastore ermöglicht regionsübergreifende Buckets, besser verteilten Ressourcen arbeiten. Beispiel: Ein multiregionaler Bucket in der EU funktioniert nicht gut mit einem us-central1-Dienst. Regionsübergreifender Zugriff führt zu höhere Latenz, fehlende regionale Fehlerisolierung und Gebühren für 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 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 nach dem Service enthalten könnte. So löschen Sie Ihren Bucket: Einen Cloud Storage-Löschvorgang ausführen

Nächste Schritte