Hive-Metastore

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

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

Wenn Sie beispielsweise eine Tabellendefinition mit der Hive-SQL-Anweisung DROP TABLE löschen:

drop table my_table
  • 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, um Ihre internen Tabellen zu verwalten. Im Hive-Warehouse-Verzeichnis werden Ihre tatsächlichen Daten gespeichert.

Wenn Sie einen Dataproc Metastore-Dienst verwenden, ist ein Cloud Storage-Bucket das standardmäßige Hive-Warehouse-Verzeichnis. Dataproc Metastore unterstützt nur die Verwendung von Cloud Storage-Buckets für das Warehouse-Verzeichnis. Im Vergleich dazu ist das bei einem lokalen HMS anders, bei dem das Hive-Warehouse-Verzeichnis normalerweise auf ein lokales Verzeichnis verweist.

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 hive.metastore.warehouse.dir Eigenschaft 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 für Sie erstellt wurde, prüfen Sie, ob Ihre Managed Service for Apache Spark-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 Managed Service for Apache Spark-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets. Verwenden Sie dazu die Rolle roles/storage.objectAdmin. Diese Rolle muss auf Bucket-Ebene oder höher festgelegt werden.

  • Wenn Sie auf das Warehouse-Verzeichnis zugreifen möchten, wenn Sie einen Ordner der obersten Ebene verwenden (z. B. gs://mybucket), gewähren Sie den Managed Service for Apache Spark-Dienstkonten Lese- und Schreibzugriff auf das Speicherobjekt des Buckets. Verwenden Sie dazu die Rolle roles/storage.storageAdmin.

Wenn sich das Hive-Warehouse-Verzeichnis nicht im selben Projekt wie Dataproc Metastore befindet, prüfen Sie, ob der Dataproc Metastore-Dienstagent die Berechtigung hat, auf das Hive-Warehouse-Verzeichnis zuzugreifen. Der Dienst agent für ein Dataproc Metastore-Projekt ist service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com. Gewähren Sie dem Dienstagenten mit der roles/storage.objectAdmin Rolle 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 Dienstdetails wird geöffnet.

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

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

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

    Eine Ansicht der Konfigurationstabelle mit dem Pfad des 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 Ihr standardmäßiges Warehouse-Verzeichnis ändern, folgen Sie diesen Empfehlungen.

  • Verwenden Sie nicht das Cloud Storage-Bucket-Stammverzeichnis (gs://mybucket), um Hive-Tabellen zu speichern.

  • Prüfen Sie, ob Ihr Dataproc Metastore-VM-Dienstkonto die Berechtigung hat, auf das Hive-Warehouse-Verzeichnis zuzugreifen.

  • Verwenden Sie am besten Cloud Storage-Buckets, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Dataproc Metastore unterstützt zwar regionsübergreifende Buckets, aber Ressourcen am selben Standort funktionieren besser. Ein Bucket in europe-west1 funktioniert beispielsweise nicht gut mit einem Dienst in us-central1. Regionsübergreifender Zugriff führt zu einer höheren Latenz, fehlender regionaler Fehlerisolation und Gebühren für 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 nach dem Abschnitt Metastore-Konfigurationsüberschreibungen > hive.metastore.warehouse.dir.

  4. Ändern Sie den Wert 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 Cloud Storage-Löschvorgang aus.

Nächste Schritte