Der ABFS-Treiber (Azure Blob Filesystem, Azure-Blobdateisystem): Ein dedizierter Azure Storage-Treiber für HadoopThe Azure Blob Filesystem driver (ABFS): A dedicated Azure Storage driver for Hadoop

Eine der Hauptmethoden für den Zugriff auf Daten in Azure Data Lake Storage Gen2 ist das Hadoop-Dateisystem.One of the primary access methods for data in Azure Data Lake Storage Gen2 is via the Hadoop FileSystem. Mit Data Lake Storage Gen2 erhalten Benutzer von Azure Blob Storage Zugriff auf einen neuen Treiber, den Azure-Blobdateisystem- oder ABFS-Treiber.Data Lake Storage Gen2 allows users of Azure Blob Storage access to a new driver, the Azure Blob File System driver or ABFS. ABFS ist Teil von Apache Hadoop und in vielen kommerziellen Hadoop-Distributionen enthalten.ABFS is part of Apache Hadoop and is included in many of the commercial distributions of Hadoop. Dank dieses 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.Using this driver, many applications and frameworks can access data in Azure Blob Storage without any code explicitly referencing Data Lake Storage Gen2.

Vorherige Funktion: Der Windows Azure Storage Blob-TreiberPrior capability: The Windows Azure Storage Blob driver

Die ursprüngliche Unterstützung von Azure Blob Storage wurde durch den Windows Azure Storage Blob-Treiber (oder WASB-Treiber) bereitgestellt.The Windows Azure Storage Blob driver or WASB driver provided the original support for Azure Blob Storage. 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.This driver performed the complex task of mapping file system semantics (as required by the Hadoop FileSystem interface) to that of the object store style interface exposed by Azure Blob Storage. 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.This driver continues to support this model, providing high performance access to data stored in blobs, but contains a significant amount of code performing this mapping, making it difficult to maintain. 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.Additionally, some operations such as FileSystem.rename() and FileSystem.delete() when applied to directories require the driver to perform a vast number of operations (due to object stores lack of support for directories) which often leads to degraded performance. Der ABFS-Treiber wurde entwickelt, um die Mängel in WASB zu bewältigen.The ABFS driver was designed to overcome the inherent deficiencies of WASB.

Der Azure-BlobdateisystemtreiberThe Azure Blob File System driver

Die Azure Data Lake Storage-REST-Schnittstelle unterstützt Dateisystemsemantik über Azure Blob Storage.The Azure Data Lake Storage REST interface is designed to support file system semantics over Azure Blob Storage. Da das Hadoop-Dateisystem die gleiche Semantik unterstützt, ist keine komplexe Zuordnung im Treiber erforderlich.Given that the Hadoop FileSystem is also designed to support the same semantics there is no requirement for a complex mapping in the driver. Der ABFS-Treiber (Azure Blob File System, Azure-Blobdateisystem) ist daher lediglich ein Client-Shim für die REST-API.Thus, the Azure Blob File System driver (or ABFS) is a mere client shim for the REST API.

Es gibt jedoch einige Funktionen, die der Treiber weiterhin ausführen muss:However, there are some functions that the driver must still perform:

URI-Schema für DatenverweiseURI scheme to reference data

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.Consistent with other FileSystem implementations within Hadoop, the ABFS driver defines its own URI scheme so that resources (directories and files) may be distinctly addressed. Das URI-Schema ist unter Use the Azure Data Lake Storage Gen2 URI (Verwenden des Azure Data Lake Storage Gen2-URI) dokumentiert.The URI scheme is documented in Use the Azure Data Lake Storage Gen2 URI. Struktur des URI: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>The structure of the URI is: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Mit dem obigen URI-Format können standardmäßige Hadoop-Tools und -Frameworks verwendet werden, um auf folgende Ressourcen zu verweisen:Using the above URI format, standard Hadoop tools and frameworks can be used to reference these resources:

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.Internally, the ABFS driver translates the resource(s) specified in the URI to files and directories and makes calls to the Azure Data Lake Storage REST API with those references.

AuthentifizierungAuthentication

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.The ABFS driver supports two forms of authentication so that the Hadoop application may securely access resources contained within a Data Lake Storage Gen2 capable account. Einzelheiten zu den verfügbaren Authentifizierungsschemas finden Sie im Azure Storage-Sicherheitsleitfaden.Full details of the available authentication schemes are provided in the Azure Storage security guide. Sie lauten wie folgt:They are:

  • Gemeinsam verwendeter Schlüssel: Ermöglicht Benutzern den Zugriff auf ALLE Ressourcen im Konto.Shared Key: This permits users access to ALL resources in the account. Der Schlüssel ist verschlüsselt und wird in der Hadoop-Konfiguration gespeichert.The key is encrypted and stored in Hadoop configuration.

  • Azure Active Directory OAuth-Bearertoken: Azure AD-Bearertoken werden durch den Treiber abgerufen und aktualisiert, indem die Identität des Endbenutzers oder ein konfigurierter Dienstprinzipal verwendet wird.Azure Active Directory OAuth Bearer Token: Azure AD bearer tokens are acquired and refreshed by the driver using either the identity of the end user or a configured Service Principal. 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.Using this authentication model, all access is authorized on a per-call basis using the identity associated with the supplied token and evaluated against the assigned POSIX Access Control List (ACL).

    Hinweis

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

KonfigurationConfiguration

Die gesamte Konfiguration für den ABFS-Treiber ist in der Konfigurationsdatei core-site.xml gespeichert.All configuration for the ABFS driver is stored in the core-site.xml configuration file. Bei Hadoop-Distributionen mit Ambari kann die Konfiguration auch über das Webportal oder über die Ambari-REST-API verwaltet werden.On Hadoop distributions featuring Ambari, the configuration may also be managed using the web portal or Ambari REST API.

Details zu allen unterstützten Konfigurationseinträgen finden Sie in der offiziellen Hadoop-Dokumentation.Details of all supported configuration entries are specified in the Official Hadoop documentation.

Hadoop-DokumentationHadoop documentation

Der ABFS-Treiber ist vollständig in der offiziellen Hadoop-Dokumentation dokumentiert.The ABFS driver is fully documented in the Official Hadoop documentation

Nächste SchritteNext steps