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: Der Hive-Metaspeicher entfernt diese Metadateneinträge im Hive-Metaspeicher und löscht außerdem die Dateien, die mit dieser bestimmten Tabelle verknüpft sind.

  • Bei externen Tabellen: Der Hive-Metaspeicher löscht nur die Metadaten und behält die Daten bei, die mit dieser bestimmten Tabelle verknüpft sind.

Cloud Storage-Bucket erstellen

Wenn Sie einen Dataproc Metastore-Dienst erstellen, wird automatisch ein Cloud Storage-Bucket für Sie in Ihrem Projekt erstellt. Dieser Bucket wird als dauerhafter Speicher zum Speichern der Dienstartefakte und -metadaten verwendet, z. B. Dumpdateien und Debug-Logs.

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:

  • Prüfen Sie, ob Ihr Dataproc Metastore-Dienst über die Berechtigung zum Zugriff auf das Warehouse-Verzeichnis verfügt. Dazu gewähren Sie dem Dataproc Metastore-Steuerdienst-Agent Lese-/Schreibzugriff auf das Objekt, also roles/storage.objectAdmin. Diese Zuweisung muss auf Bucket-Ebene oder höher erfolgen. Das Dienstkonto, auf das Sie Zugriff gewähren müssen, ist service-customer-project-number@gcp-sa-metastore.iam.gserviceaccount.com.

    Unter Cloud Storage-Zugriffssteuerung erfahren Sie, wie Sie Lese-/Schreibberechtigungen an Dataproc Metastore-Dienst-Agents in Ihrem Warehouse-Verzeichnis erteilen.

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

  • Dataproc Metastore erstellt automatisch ein Warehouse-Verzeichnis an einem Standardspeicherort (gs://your-artifacts-bucket/hive-warehouse).

  • Prüfen Sie, ob Ihr Dataproc-VM-Dienstkonto die Berechtigung für den Zugriff auf das Warehouse-Verzeichnis hat. Dazu gewähren Sie dem Dataproc-VM-Dienst-Agent Lese-/Schreibzugriff auf das Objekt. Das ist roles/storage.objectAdmin. Diese Zuweisung muss auf Bucket-Ebene oder höher erfolgen.

Cloud Storage-Bucket löschen

Durch das Löschen des Dataproc Metastore-Dienstes wird Ihr 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.

Nächste Schritte