Datenspeicher für interne Tabellen

Dataproc Metastore verwendet Zuordnungen zwischen Apache Hadoop Distributed File System (HDFS) oder Hive-kompatiblen Speichersystemdateien und Apache Hive-Tabellen, um Ihre Metadaten vollständig zu verwalten. Die folgenden Konzepte und Überlegungen sind wichtig, wenn Sie einen Dataproc-Cluster oder einen anderen selbstverwalteten Cluster anhängen, um einen Dataproc Metastore-Dienst als zugehörigen Hive-Metastore zu verwenden.

Hive-Metastore-Konzepte

Alle Hive-Anwendungen können verwaltete interne oder nicht verwaltete externe Tabellen haben. Bei internen Tabellen verwaltet Hive-Metastore nicht nur die Metadaten, sondern auch die Daten für diese Tabellen. Bei externen Tabellen dagegen verwaltet Hive-Metastore nicht die Daten, sondern nur die Metadaten für diese Tabellen.

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

drop table foo
  • Für interne Tabellen: Hive-Metastore entfernt diese Metadateneinträge aus Hive-Metastore und löscht auch die mit dieser Tabelle verknüpften Dateien.

  • Für externe Tabellen: Hive-Metastore löscht nur die Metadaten und behält die mit dieser Tabelle verknüpften Daten bei.

Cloud Storage-Bucket erstellen

Wenn Sie einen Dataproc Metastore-Dienst erstellen, wird automatisch ein Cloud Storage-Bucket in Ihrem Projekt erstellt. Dieser Bucket wird als dauerhafter Speicher verwendet, um die Dienstartefakte und Metadaten wie Dumpdateien und Fehlerbehebungsprotokolle zu speichern.

Hive-Warehouse-Verzeichnis

Damit Hive-Metastore ordnungsgemäß ausgeführt wird, müssen Sie beim Erstellen des Dienstes möglicherweise Dataproc Metastore mit dem Hive-Warehouse-Verzeichnis angeben. Dies gilt sowohl für interne als auch für externe Tabellen. Dieses Verzeichnis enthält Unterverzeichnisse, die internen Tabellen entsprechen und die tatsächlichen Daten in der Tabelle speichern. Sie sind häufig Cloud Storage-Buckets.

Unabhängig davon, ob Sie Dataproc Metastore mit einem Warehouse-Verzeichnis bereitstellen oder nicht, erstellt Dataproc Metastore einen Cloud Storage-Artefakt-Bucket zum Speichern von Dienstartefakten, die Sie nutzen können.

Wenn Sie ein Hive-Warehouse-Verzeichnis bereitstellen möchten:

  • Sorgen Sie dafür, dass der Dataproc Metastore-Dienst die Berechtigung für den Zugriff auf das Warehouse-Verzeichnis hat. Dazu gewähren Sie dem Dataproc Metastore-Dienst-Agent den Lese-/Schreibzugriff auf Objekte, also roles/storage.objectAdmin. Diese Berechtigung muss auf Bucket-Ebene oder höher festgelegt werden. Das Dienstkonto, auf das Sie Zugriff gewähren möchten, ist service-customer-project-number@gcp-sa-metastore.iam.gserviceaccount.com.

    Unter Cloud Storage-Zugriffssteuerung erfahren Sie, wie Sie Lese-/Schreibberechtigungen für Dataproc Metastore-Dienst-Agents in Ihrem Warehouse-Verzeichnis gewähren.

Wenn Sie ein Hive-Warehouse-Verzeichnis bereitstellen möchten:

  • Dataproc Metastore erstellt automatisch ein Warehouse-Verzeichnis für Sie an dem Standardspeicherort gs://your-artifacts-bucket/hive-warehouse.

  • Sorgen Sie dafür, dass Ihr Dataproc-VM-Dienstkonto die Berechtigung für den Zugriff auf das Warehouse-Verzeichnis hat. Dazu gewähren Sie dem Dataproc-VM-Dienst-Agent Objekt-Lese-/Schreibzugriff, also roles/storage.objectAdmin. Diese Berechtigung muss auf Bucket-Ebene oder höher festgelegt werden.

Cloud Storage-Bucket löschen

Durch das Löschen des Dataproc Metastore-Dienstes wird der Cloud Storage-Artefakt-Bucket nicht gelöscht. Dies liegt daran, dass Ihr Bucket nützliche Daten über den Dienst hinaus enthalten kann. Sie müssen den Bucket explizit löschen, wenn Sie dies möchten.

Weitere Informationen