El controlador Azure Blob Filesystem (ABFS): un controlador de Azure Storage dedicado para Hadoop

Uno de los principales métodos de acceso para los datos en Azure Data Lake Storage Gen2 es mediante Hadoop FileSystem. Data Lake Storage Gen2 permite a los usuarios de Azure Blob Storage obtener acceso a un nuevo controlador, el controlador del sistema de archivos de blob de Azure o ABFS. ABFS forma parte de Apache Hadoop y se incluye en muchas de las distribuciones comerciales de Hadoop. Gracias al controlador ABFS, muchas aplicaciones y plataformas pueden acceder a datos de Azure Blob Storage sin código que haga referencia explícita a Data Lake Storage Gen2.

Funcionalidad anterior: el controlador Azure Storage Blob para Windows

El controlador de Azure Storage Blob para Windows o controlador WASB ofrecía la compatibilidad original con Azure Storage Blob. Este controlador realizaba la compleja tarea de asignar semántica de sistema de archivos (como requería la interfaz de Hadoop FileSystem) a la de la interfaz de estilo de almacén de objetos expuesta por Azure Blob Storage. Aunque este controlador aún admite este modelo, y proporciona acceso de alto rendimiento a los datos almacenados en blobs, contiene una importante cantidad de código que realiza esta asignación, lo que hace que sea difícil de mantener. Además, algunas operaciones como FileSystem.rename() y FileSystem.delete(), cuando se aplican a directorios, necesitan el controlador para realizar un gran número de operaciones (debido a la falta de compatibilidad de los almacenes de objetos con los directorios), lo que con frecuencia conduce a una degradación en el rendimiento. El controlador ABFS se diseñó para superar las deficiencias inherentes de WASB.

El controlador Azure Blob File System

La interfaz de REST de Azure Data Lake Storage está diseñada para admitir la semántica de sistema de archivos a través de Azure Blob Storage. Dado que el sistema de archivo Hadoop también está diseñado para admitir la misma semántica, no hay ningún requisito de una asignación compleja en el controlador. Por tanto, el controlador Azure Blob File System (o ABFS) es una mera corrección de compatibilidad (shim) de cliente para la API REST.

Sin embargo, hay algunas funciones que el controlador debe seguir realizando:

Esquema de URI para los datos de referencia

En consonancia con otras implementaciones de sistema de archivo en Hadoop, el controlador ABFS define su propio esquema de URI de modo que los recursos (directorios y archivos) se puedan direccionar claramente. El esquema de URI se documenta en Use the Azure Data Lake Storage Gen2 URI (Uso del URI de Azure Data Lake Storage Gen2). La estructura del URI es: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Al utilizar este formato de URI anterior, se pueden usar herramientas y plataformas estándar de Hadoop para hacer referencia a estos recursos:

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/

Internamente, el controlador ABFS convierte los recursos especificados en el URI en archivos y directorios y realiza llamadas a la API REST de Azure Data Lake Storage con esas referencias.

Autenticación

El controlador ABFS admite dos formas de autenticación, de modo que la aplicación de Hadoop puede acceder de forma segura a los recursos contenidos en la cuenta compatible de Data Lake Storage Gen2. Se proporcionan detalles completos de los esquemas de autenticación disponibles en la guía de seguridad de Azure Storage. Son las siguientes:

  • Clave compartida: esto proporciona a los usuarios acceso a todos los recursos de la cuenta. La clave se cifra y almacena en la configuración de Hadoop.

  • Token de portador de OAuth de Microsoft Entra ID: el controlador adquiere y actualiza los tokens de portador de Microsoft Entra con la identidad del usuario final o una entidad de servicio configurada. Al usar este modelo de autenticación, se autoriza todo acceso en función de cada llamada, mediante la identidad asociada con el token suministrado y se evalúa en relación con la lista de control de acceso POSIX (ACL) asignada.

    Nota

    Azure Data Lake Storage Gen2 solo admite puntos de conexión de Azure AD v1.0.

Configuración

Toda la configuración del controlador ABFS se almacena en el archivo de configuración core-site.xml. En las distribuciones de Hadoop con Ambari, la configuración también puede administrarse mediante el portal web o la API REST de Ambari.

Se puede encontrar información detallada de todas las entradas de configuración admitidas en la documentación oficial de Hadoop.

Documentación de Hadoop

El controlador ABFS está completamente documentado en la documentación oficial de Hadoop.

Pasos siguientes