ABFS (driver de sistema de arquivos de Blob do Azure): um driver de Armazenamento do Microsoft Azure dedicado para Hadoop

Um dos principais métodos de acesso para dados no Azure Data Lake Storage Gen2 é via Sistema de Arquivos Hadoop. O Data Lake Storage Gen2 permite que os usuários do Armazenamento de Blobs do Azure acessem um novo driver, o driver do Sistema de Arquivos de Blobs do Azure ou ABFS. O ABFS faz parte do Apache Hadoop e está incluído em muitas das distribuições comerciais do Hadoop. Pelo driver ABFS, muitos aplicativos e estruturas podem acessar dados no Armazenamento de Blobs do Azure sem nenhum código que faça referência explícita ao Data Lake Storage Gen2.

Recurso anterior: driver do Azure Storage Blob do Windows

O driver de Blob de Armazenamento do Microsoft Azure ou driver WASB forneceu suporte original para o Armazenamento de Blobs do Azure. Esse driver executou a tarefa complexa de mapear a semântica do sistema de arquivos (conforme requerido pela interface do Hadoop FileSystem) para aquela da interface de estilo de armazenamento de objeto exposta pelo Armazenamento de Blobs. Esse driver continua dando suporte a esse modelo, fornecendo acesso de alto desempenho aos dados armazenados nos BLOBS, mas contém uma quantidade significativa de código que realiza esse mapeamento, dificultando a manutenção. Além disso, algumas operações como FileSystem.rename() e FileSystem.delete() quando aplicadas a diretórios exigem que o driver realize um vasto número de operações (devido à falta de suporte para diretórios), o que geralmente leva a um desempenho degradado. O driver ABFS foi projetado para superar as deficiências inerentes de WASB.

Driver de Sistema de Arquivos de Blob do Azure

A interface REST do Azure Data Lake Store é projetada para dar suporte à semântica do sistema de arquivos no Armazenamento de Blobs. Como o sistema de arquivos Hadoop também foi projetado para suportar a mesma semântica, não há necessidade de um mapeamento complexo no driver. Portanto, o driver de sistema de Arquivos de Blob do Azure (ou ABFS) é um shim de cliente simples para a API REST.

No entanto, há algumas funções que o driver ainda deve executar:

Esquema de URI para referência de dados

Consistente com outras implementações do sistema de arquivos no Hadoop, o driver ABFS define o próprio esquema de URI para que os recursos (diretórios e arquivos) possam ser abordados de maneira distinta. O esquema de URI está documentado em Usar o URI do Azure Data Lake Store Gen2. A estrutura do URI é: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Usando o formato de URI, as ferramentas e estruturas padrão do Hadoop podem ser utilizadas para referenciar esses 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, o driver ABFS converte os recursos especificados no URI em arquivos e diretórios e faz chamadas à API REST do Azure Data Lake Store com essas referências.

Autenticação

O driver ABFS dá suporte a duas formas de autenticação, para que o aplicativo Hadoop possa acessar com segurança os recursos contidos em uma conta compatível com Azure Data Lake Storage Gen2. Detalhes completos dos esquemas de autenticação disponíveis são fornecidos no guia de segurança do Armazenamento do Microsoft Azure. Eles são:

  • Chave Compartilhada: permite que os usuários acessem TODOS os recursos na conta. A chave é criptografada e armazenada na configuração do Hadoop.

  • Token de Portador OAuth do Microsoft Entra ID: os tokens de portador do Microsoft Entra são adquiridos e atualizados pelo driver usando a identidade do usuário final ou uma Entidade de Serviço configurada. Usando esse modelo de autenticação, todo o acesso é autorizado por chamada usando a identidade associada ao token fornecido e avaliado em relação à Lista de Controle de Acesso (ACL) POSIX atribuída.

    Observação

    O Azure Data Lake Storage Gen2 dá suporte apenas a pontos de extremidade do Azure Active Directory v 1.0.

Configuração

Todas as configurações para o driver ABFS são armazenadas no arquivo de configuração core-site.xml. Nas distribuições do Hadoop que caracterizam Ambari, a configuração também pode ser gerenciada usando o portal da Web ou a API REST do Ambari.

Os detalhes de todas as entradas de configuração com suporte são especificados na Documentação oficial do Hadoop.

Documentação do Hadoop

O driver ABFS está totalmente documentado na Documentação oficial do Hadoop

Próximas etapas