Drivrutinen Azure Blob File System (ABFS): en dedikerad Azure Storage drivrutin för Hadoop

En av de primära åtkomstmetoderna för data i Azure Data Lake Storage är via Hadoop FileSystem. Data Lake Storage användare av Azure Blob Storage kan komma åt drivrutinen Azure Blob File System eller ABFS. ABFS är en del av Apache Hadoop och ingår i många av de kommersiella distributionerna av Hadoop. Med hjälp av ABFS-drivrutinen kan många program och ramverk komma åt data i Azure Blob Storage utan någon kod som uttryckligen refererar till Data Lake Storage.

Tidigare funktion: Windows Azure Storage Blob-drivrutin

Windows Azure Storage Blob-drivrutinen eller WASB-drivrutinen tillhandahöll det ursprungliga stödet för Azure Blob Storage. Den här drivrutinen utför den komplexa uppgiften att mappa filsystemssemantik (som krävs av Hadoop FileSystem-gränssnittet) till det objektlagerformatsgränssnitt som exponeras av Azure Blob Storage. Den här drivrutinen fortsätter att stödja den här modellen, vilket ger högpresterande åtkomst till data som lagras i blobar. Den innehåller dock en betydande mängd kod som utför den här mappningen, vilket gör det svårt att underhålla. Dessutom kräver FileSystem.rename() och FileSystem.delete() som tillämpas på kataloger att drivrutinen utför ett stort antal åtgärder, eftersom objektlager saknar stöd för intern katalog. Den här kostnaden leder ofta till försämrade prestanda. ABFS-föraren övervinner de inneboende bristerna i WASB.

Så här fungerar ABFS

AZURE DATA LAKE STORAGE REST-gränssnittet stöder filsystemssemantik över Azure Blob Storage. Eftersom Hadoop-filsystemet också är utformat för att stödja samma semantik finns det inget krav på en komplex mappning i drivrutinen. Azure Blob File System-drivrutinen (eller ABFS) är alltså bara en klient-shim för REST-API:et.

Drivrutinen måste dock fortfarande utföra vissa funktioner:

URI-schema för referensdata

I enlighet med andra filsystemimplementeringar i Hadoop definierar ABFS-drivrutinen sitt eget URI-schema så att resurser (kataloger och filer) kan åtgärdas tydligt. URI-schemat dokumenteras i Använda Azure Data Lake Storage-URI:n. Strukturen för URI:n är: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>, där abfss:// TLS används för krypterade anslutningar.

Med det här URI-formatet kan standardverktyg och ramverk för Hadoop referera till följande resurser:

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/

Internt översätter ABFS-drivrutinen de resurser som anges i URI:n till filer och kataloger och anropar Azure Data Lake Storage REST API med dessa referenser.

Autentisering

ABFS-drivrutinen stöder två former av autentisering så att Hadoop-programmet kan komma åt resurser som finns i ett Data Lake Storage-kompatibelt konto på ett säkert sätt. Autentisering kräver ett lagringskonto med hierarkiskt namnområde aktiverat. Fullständig information om tillgängliga autentiseringsscheman finns i säkerhetsguiden för Azure Storage. De autentiseringsscheman som stöds är:

  • Delad nyckel: Den här autentiseringsmetoden ger användarna åtkomst till alla resurser i kontot. Nyckeln krypteras och lagras i Hadoop-konfigurationen.

  • Microsoft Entra ID OAuth Bearer Token: Drivrutinen hämtar och uppdaterar Microsoft Entra ägartoken med hjälp av antingen slutanvändarens identitet eller ett konfigurerat huvudnamn för tjänsten. När du använder den här autentiseringsmodellen auktoriserar du all åtkomst per anrop med hjälp av identiteten som är associerad med den angivna token, som utvärderas mot den tilldelade POSIX-Access Control-listan (ACL).

    Kommentar

    Azure Data Lake Storage stöder Microsoft Entra ID OAuth 2.0-autentisering.

Konfiguration

Lagra all konfiguration för ABFS-drivrutinen i konfigurationsfilen core-site.xml . På Hadoop-distributioner med Ambari kan du också hantera konfigurationen med hjälp av webbportalen eller Ambari REST API.

Mer information om alla konfigurationsposter som stöds finns i den officiella Hadoop-dokumentationen.

Nästa steg