Der Azure Blob File System-Treiber (ABFS): ein dedizierter Azure Storage Treiber für Hadoop

Eine der Hauptmethoden für den Zugriff auf Daten in Azure Data Lake Storage ist das Hadoop-Dateisystem. Data Lake Storage-Benutzer von Azure Blob Storage können auf den Azure Blob File System-Treiber oder ABFS zugreifen. ABFS ist Teil von Apache Hadoop und in vielen kommerziellen Hadoop-Distributionen enthalten. Mithilfe des ABFS-Treibers können viele Anwendungen und Frameworks auf Daten in Azure Blob Storage zugreifen, ohne dass code explizit auf Data Lake Storage verweist.

Vorherige Funktion: der Windows Azure Storage Blob-Treiber

Die ursprüngliche Unterstützung von Azure Blob Storage wurde durch den Windows Azure Storage Blob-Treiber (oder WASB-Treiber) bereitgestellt. Dieser Treiber führt die komplexe Aufgabe der Zuordnung der Dateisystemsemantik (wie von der Hadoop FileSystem-Schnittstelle erforderlich) mit der der Objektspeicherstilschnittstelle aus, die von Azure Blob Storage verfügbar gemacht wird. Dieser Treiber unterstützt dieses Modell weiterhin und bietet leistungsstarken Zugriff auf daten, die in Blobs gespeichert sind. Es enthält jedoch einen erheblichen Code, der diese Zuordnung ausführt, was die Wartung erschwert. Darüber hinaus erfordern FileSystem.rename() und FileSystem.delete(), die auf Verzeichnisse angewendet werden, dass der Treiber eine große Anzahl von Vorgängen ausführt, da objektspeichern systemeigene Verzeichnisunterstützung fehlen. Dieser Aufwand führt häufig zu leistungseinbußen. Der ABFS-Treiber überwindet die inhärenten Mängel der WASB.

Funktionsweise von ABFS

Die Azure Data Lake Storage REST-Schnittstelle unterstützt Dateisystemsemantik über Azure Blob Storage. Da das Hadoop-Dateisystem auch die gleiche Semantik unterstützt, besteht keine Anforderung für eine komplexe Zuordnung im Treiber. Der ABFS-Treiber (Azure Blob File System, Azure-Blobdateisystem) ist daher lediglich ein Client-Shim für die REST-API.

Der Treiber muss jedoch weiterhin einige Funktionen ausführen:

URI-Schema für Datenverweise

Im Einklang mit anderen Dateisystemimplementierungen innerhalb von Hadoop definiert der ABFS-Treiber sein eigenes URI-Schema, sodass Ressourcen (Verzeichnisse und Dateien) eindeutig adressiert werden können. Das URI-Schema ist unter Verwenden des Azure Data Lake Storage-URI dokumentiert. Die Struktur des URI lautet: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>, wobei abfss:// TLS für verschlüsselte Verbindungen verwendet wird.

Mithilfe dieses URI-Formats können Standardmäßige Hadoop-Tools und Frameworks auf diese Ressourcen verweisen:

hdfs dfs -mkdir -p abfs://fileanalysis@myanalytics.dfs.core.windows.net/tutorials/flightdelays/data
hdfs dfs -put flight_delays.csv abfs://fileanalysis@myanalytics.dfs.core.windows.net/tutorials/flightdelays/data/

Intern übersetzt der ABFS-Treiber die im URI angegebenen Ressourcen in Dateien und Verzeichnisse und führt Aufrufe an die Azure Data Lake Storage REST-API mit diesen Verweisen aus.

Authentifizierung

Der ABFS-Treiber unterstützt zwei Authentifizierungsformen, sodass die Hadoop-Anwendung sicher auf Ressourcen zugreifen kann, die in einem Data Lake Storage fähigen Konto enthalten sind. Für die Authentifizierung ist ein Speicherkonto mit aktiviertem hierarchischen Namespace erforderlich. Ausführliche Informationen zu den verfügbaren Authentifizierungsschemas finden Sie im Azure Storage Sicherheitshandbuch. Die unterstützten Authentifizierungsschemas sind:

  • Freigegebener Schlüssel: Diese Authentifizierungsmethode gewährt Benutzern Zugriff auf alle Ressourcen im Konto. Der Schlüssel wird verschlüsselt und in der Hadoop-Konfiguration gespeichert.

  • Microsoft Entra ID OAuth Bearer Token: Der Treiber erwirbt und aktualisiert Microsoft Entra Bearertoken mithilfe der Identität des Endbenutzers oder eines konfigurierten Dienstprinzipals. Wenn Sie dieses Authentifizierungsmodell verwenden, autorisieren Sie den gesamten Zugriff pro Aufruf mithilfe der Identität, die dem bereitgestellten Token zugeordnet ist, das anhand der zugewiesenen POSIX Access Control List (ACL) ausgewertet wird.

    Hinweis

    Azure Data Lake Storage unterstützt Microsoft Entra ID OAuth 2.0-Authentifizierung.

Konfiguration

Speichern Sie alle Konfigurationen für den ABFS-Treiber in der core-site.xml Konfigurationsdatei. Bei Hadoop-Verteilungen, die Ambari enthalten, können Sie die Konfiguration auch mithilfe des Webportals oder der Ambari-REST-API verwalten.

Ausführliche Informationen zu allen unterstützten Konfigurationseinträgen finden Sie in der offiziellen Hadoop-Dokumentation.

Nächste Schritte