Auf dieser Seite wird beschrieben, wie Buckets mit hierarchischem Namespace für Hadoop-Arbeitslasten verwendet werden.
Übersicht
Wenn Sie einen Cloud Storage-Bucket mit hierarchischem Namespace verwenden, können Sie den Cloud Storage-Connector so konfigurieren, dass der Vorgang Ordner umbenennen für Arbeitslasten wie Hadoop, Spark oder Hive verwendet wird.
In einem Bucket ohne hierarchischen Namespace umfasst ein Umbenennungsvorgang in Hadoop, Spark und Hive mehrere Jobs zum Kopieren und Löschen von Objekten, was sich auf Leistung und Konsistenz auswirkt. Wenn Sie einen Ordner mit dem Cloud Storage-Connector umbenennen, wird die Leistung optimiert und für Konsistenz bei der Verarbeitung von Ordnern mit einer großen Anzahl von Objekten gesorgt.
Dataproc
Sie können mit der Google Cloud CLI einen Dataproc-Cluster erstellen und den Cloud Storage-Connector für die Ordnervorgänge aktivieren.
Installieren oder aktualisieren Sie den Cloud Storage-Connector auf Version 2.2.23 oder höher (außer Version 3.0.0).
Erstellen Sie mit dem folgenden Befehl einen Dataproc-Cluster:
gcloud dataproc clusters create CLUSTER_NAME --properties=core:fs.gs.hierarchical.namespace.folders.enable=true, core:fs.gs.http.read-timeout=30000
Dabei gilt:
CLUSTER_NAME
ist der Name des Clusters. Beispiel:my-cluster
- Mit
fs.gs.hierarchical.namespace.folders.enable
wird der hierarchische Namespace für einen Bucket aktiviert. fs.gs.http.read-timeout
ist die maximale Zeit in Millisekunden, die zum Lesen von Daten aus einer bestehenden Verbindung zulässig ist. Diese Einstellung ist optional.
Selbstverwaltetes Hadoop
Sie können den Cloud Storage-Connector in Ihrem selbst verwalteten Hadoop-Cluster aktivieren, um die Ordnervorgänge auszuführen.
Installieren oder aktualisieren Sie den Cloud Storage-Connector auf Version 2.2.23 oder höher (außer Version 3.0.0).
Fügen Sie der Konfigurationsdatei „core-site.xml“ Folgendes hinzu:
<property> <name>fs.gs.hierarchical.namespace.folders.enable</name> <value>true</value> </property> <property> <name>fs.gs.http.read-timeout</name> <value>30000</value> </property>
Dabei gilt:
- Mit
fs.gs.hierarchical.namespace.folders.enable
wird der hierarchische Namespace für einen Bucket aktiviert. fs.gs.http.read-timeout
ist die maximale Zeit in Millisekunden, die zum Lesen von Daten aus einer bestehenden Verbindung zulässig ist. Diese Einstellung ist optional.
- Mit
Kompatibilität mit Cloud Storage-Connector Version 3.0.0 oder Versionen vor 2.2.23
Die Verwendung der Cloud Storage-Connector-Version 3.0.0 oder von Versionen älter als 2.2.23 oder das Deaktivieren von Ordnervorgängen für den hierarchischen Namespace kann zu den folgenden Einschränkungen führen:
Ineffiziente Ordnerumbenennung: Ordnerumbenennungsvorgänge in Hadoop werden mit Kopier- und Löschvorgängen auf Objektebene ausgeführt, die langsamer und weniger effizient sind als der dedizierte
rename folder
-Vorgang.Anzahl leerer Ordner: Ordnerressourcen werden nicht automatisch gelöscht, was dazu führt, dass sich leere Ordner in Ihrem Bucket ansammeln. Die Ansammlung leerer Ordner kann folgende Auswirkungen haben:
- Erhöhen die Speicherkosten, wenn sie nicht ausdrücklich gelöscht werden.
Die Listenvorgänge verlangsamen und das Risiko von Zeitüberschreitungen bei Listenvorgängen erhöhen.
Kompatibilitätsprobleme: Wenn Sie ältere und neuere Connectorversionen verwenden oder Ordnervorgänge aktivieren und deaktivieren, kann das beim Umbenennen von Ordnern zu Kompatibilitätsproblemen führen. Stellen Sie sich das folgende Szenario vor, bei dem eine Kombination aus Connector-Versionen verwendet wird:
Verwenden Sie die Cloud Storage-Connector-Version vor 2.2.23, um die folgenden Aufgaben auszuführen:
- Objekte im Ordner
foo/
schreiben. - Benennen Sie den Ordner
foo/
inbar/
um. Beim Umbenennen werden die Objekte unterfoo/
kopiert und gelöscht, der leere Ordnerfoo/
wird jedoch nicht gelöscht.
- Objekte im Ordner
Verwenden Sie den Cloud Storage-Connector Version 2.2.23 mit aktivierten Ordnervorgaben, um den Ordner
bar/
infoo/
umzubenennen.
Die Connector-Version 2.2.23 mit aktiviertem Ordnervorgang erkennt den vorhandenen Ordner
foo/
, wodurch der Umbenennungsvorgang fehlschlägt. In der älteren Connector-Version wurde der Ordnerfoo/
nicht gelöscht, da der Ordnervorgang deaktiviert war.
Nächste Schritte
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit von Cloud Storage in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Cloud Storage kostenlos testen