Der ABFS-Treiber (Azure Blob Filesystem, Azure-Blobdateisystem): Ein dedizierter Azure Storage-Treiber für Hadoop

Eine der Hauptmethoden für den Zugriff auf Daten in Azure Data Lake Storage Gen2 ist das Hadoop-Dateisystem. Mit Data Lake Storage Gen2 erhalten Benutzer von Azure Blob Storage Zugriff auf einen neuen Treiber, den Azure-Blobdateisystem- oder ABFS-Treiber. ABFS ist Teil von Apache Hadoop und in vielen kommerziellen Hadoop-Distributionen enthalten. Dank des ABFS-Treibers können zahlreiche Anwendungen und Frameworks ganz ohne Code, der explizit auf den Azure Blob Storage-Dienst verweist, auf Daten in Data Lake Storage Gen2 zugreifen.

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 hatte die komplexe Aufgabe, die für die Hadoop-Dateisystemschnittstelle erforderliche Dateisystemsemantik der objektspeicherorientierten Schnittstelle zuzuordnen, die von Azure Blob Storage verfügbar gemacht wird. Dieser Treiber unterstützt das Modell zwar weiterhin und bietet blitzschnellen Zugriff auf in Blobs gespeicherte Daten, enthält aber auch eine große Menge an Code für die entsprechende Zuordnung, was ihn nicht gerade wartungsfreundlich macht. Darüber hinaus muss der Treiber bei einigen Vorgängen (beispielsweise bei FileSystem.rename() und FileSystem.delete() für Verzeichnisse) eine große Anzahl von Vorgängen ausführen, da Objektspeicher keine Verzeichnisse unterstützen. Dies wirkt sich nachteilig auf die Leistung aus. Der ABFS-Treiber wurde entwickelt, um die Mängel in WASB zu bewältigen.

Der Azure-Blobdateisystemtreiber

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

Es gibt jedoch einige Funktionen, die der Treiber weiterhin ausführen muss:

URI-Schema für Datenverweise

Genau wie bei anderen Dateisystemimplementierungen in Hadoop definiert der ABFS-Treiber ein eigenes URI-Schema, um eine eindeutige Adressierung von Ressourcen (Verzeichnisse und Dateien) zu ermöglichen. Das URI-Schema ist unter Use the Azure Data Lake Storage Gen2 URI (Verwenden des Azure Data Lake Storage Gen2-URI) dokumentiert. Struktur des URI: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Mit diesem URI-Format können standardmäßige Hadoop-Tools und -Frameworks verwendet werden, um auf folgende Ressourcen zu 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 für die Azure Data Lake Storage-REST-API mit diesen Verweisen aus.

Authentifizierung

Der ABFS-Treiber unterstützt zwei Formen der Authentifizierung, sodass die Hadoop-Anwendung sicher auf Ressourcen in einem Data Lake Storage Gen2-fähigen Konto zugreifen kann. Einzelheiten zu den verfügbaren Authentifizierungsschemas finden Sie im Azure Storage-Sicherheitsleitfaden. Sie lauten wie folgt:

  • Gemeinsam verwendeter Schlüssel: Ermöglicht Benutzern den Zugriff auf ALLE Ressourcen im Konto. Der Schlüssel ist verschlüsselt und wird in der Hadoop-Konfiguration gespeichert.

  • Microsoft Entra ID OAuth-Bearertoken: Microsoft Entra-Bearertoken werden durch den Treiber abgerufen und aktualisiert, indem die Identität des Endbenutzers oder ein konfigurierter Dienstprinzipal verwendet wird. Mit diesem Authentifizierungsmodell wird jeder Zugriff auf der Basis der Identität des angegebenen Tokens pro Aufruf autorisiert und anhand der zugewiesenen POSIX-ACL (Zugriffssteuerungsliste) ausgewertet.

    Hinweis

    Azure Data Lake Storage Gen2 unterstützt nur Azure AD v1.0-Endpunkte.

Konfiguration

Die gesamte Konfiguration für den ABFS-Treiber ist in der Konfigurationsdatei core-site.xml gespeichert. Bei Hadoop-Distributionen mit Ambari kann die Konfiguration auch über das Webportal oder über die Ambari-REST-API verwaltet werden.

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

Hadoop-Dokumentation

Der ABFS-Treiber ist vollständig in der offiziellen Hadoop-Dokumentation dokumentiert.

Nächste Schritte