Pilote ABFS (Azure Blob File System) : pilote de stockage Azure dédié pour Hadoop

Hadoop FileSystem constitue l’une des principales méthodes d’accès aux données dans Azure Data Lake Storage Gen2. Data Lake Storage Gen2 permet aux utilisateurs du stockage Blob Azure d'accéder à un nouveau pilote, le pilote Azure Blob File System ou ABFS. ABFS fait partie d’Apache Hadoop et est inclus dans la plupart des distributions commerciales de Hadoop. Grâce au pilote ABFS, de nombreuses applications et infrastructures peuvent accéder aux données du stockage Blob Azure, sans nécessiter de code faisant explicitement référence à Data Lake Storage Gen2.

Fonctionnalité préalable : pilote Windows Azure Storage Blob

Au départ, c’est le pilote WASB (Windows Azure Storage Blob) qui prenait en charge le stockage Blob Azure. Il avait pour tâche complexe de mapper la sémantique du système de fichiers (conformément à l’interface Hadoop FileSystem) à celle de l’interface de style « magasin d’objets » exposée par Stockage Blob Azure. Ce pilote continue à prendre en charge ce modèle et fournit un accès très performant aux données stockées dans les objets blob. Il est toutefois difficile de le tenir à jour, car la quantité de code nécessaire au mappage est très importante. Par ailleurs, quand certaines opérations comme FileSystem.rename() et FileSystem.delete() sont appliquées à des répertoires, le pilote doit effectuer un grand nombre d’opérations (les magasins d’objet ne prenant pas en charge les répertoires), ce qui aboutit souvent à une dégradation des performances. Le pilote ABFS a été conçu pour combler les lacunes inhérentes à WASB.

Pilote Azure Blob File System

L’interface REST Azure Data Lake Storage est conçue pour prendre en charge la sémantique du système de fichiers sur Stockage Blob Azure. Étant donné que le système de fichiers Hadoop est également conçu pour prendre en charge la même sémantique, aucun mappage complexe ne doit avoir lieu dans le pilote. Le pilote Azure Blob File System (ou ABFS) est donc un simple shim client pour l’API REST.

Le pilote doit toutefois effectuer certaines opérations :

Schéma d’URI pour référencer les données

Conformément à d’autres implémentations du système de fichiers dans Hadoop, le pilote ABFS définit son propre schéma URI pour que les ressources (fichiers et répertoires) puissent être adressées distinctement. Le schéma d’URI est documenté dans Utiliser l’URI Azure Data Lake Storage Gen2. L’URI a la structure suivante : abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Grâce au format URI, des outils et des frameworks Hadoop standard peuvent être utilisés pour référencer ces ressources :

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/

En interne, le pilote ABFS traduit la ou les ressources spécifiées dans l’URI en fichiers et répertoires, puis effectue des appels à l’API REST Azure Data Lake Storage avec ces références.

Authentification

Le pilote ABFS prend en charge deux types d’authentification. L’application Hadoop peut donc accéder de manière sécurisée aux ressources contenues dans un compte compatible avec Azure Data Lake Storage Gen2. Vous trouverez des informations complètes sur les schémas d’authentification disponibles dans le guide de sécurité de Stockage Azure. Il s'agit de :

  • Clé partagée : celle-ci permet aux utilisateurs d’accéder à toutes les ressources contenues dans le compte. La clé est chiffrée et stockée dans la configuration Hadoop.

  • Jeton du porteur OAuth Microsoft Entra ID : les jetons de porteur Microsoft Entra sont obtenus et mis à jour par le pilote à l’aide de l’identité de l’utilisateur final ou d’un principal de service configuré. Avec ce modèle d’authentification, l’accès est autorisé appel par appel à l’aide de l’identité associée au jeton fourni et vérifiée par rapport à la liste de contrôle d’accès POSIX attribuée.

    Notes

    Azure Data Lake Storage Gen2 prend uniquement en charge les points de terminaison Azure AD v1.0.

Configuration

La configuration du pilote ABFS est entièrement stockée dans le fichier de configuration core-site.xml. Sur les distributions Hadoop proposant Ambari, la configuration peut également être gérée à l’aide du portail web ou de l’API REST Ambari.

Les détails de toutes les entrées de configuration prises en charge sont spécifiés dans la documentation Hadoop officielle.

Documentation Hadoop

Le pilote ABFS est présenté au complet dans la documentation Hadoop officielle.

Étapes suivantes