O driver do Sistema de Arquivos de Blob do Azure (ABFS): um driver de Armazenamento do Azure dedicado para Hadoop

Um dos principais métodos de acesso para dados no Azure Data Lake Storage Gen2 é por meio do Hadoop FileSystem. 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 Blob 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 qualquer código que faça referência explícita ao Data Lake Storage Gen2.

Capacidade anterior: o driver de Blob de Armazenamento do Windows Azure

O driver de Blob de Armazenamento do Windows Azure ou driver WASB forneceu o 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 exigido pela interface do Hadoop FileSystem) para a interface de estilo do repositório de objetos exposta pelo Armazenamento de Blobs do Azure. Este driver continua a suportar este modelo, fornecendo acesso de alto desempenho aos dados armazenados em blobs, mas contém uma quantidade significativa de código executando esse mapeamento, dificultando sua manutenção. Além disso, algumas operações como FileSystem.rename() e FileSystem.delete() quando aplicadas a diretórios exigem que o driver execute um grande número de operações (devido à falta de suporte de armazenamentos de objetos para diretórios), o que geralmente leva a um desempenho degradado. O driver ABFS foi projetado para superar as deficiências inerentes ao WASB.

O driver do Sistema de Arquivos de Blob do Azure

A interface REST do Armazenamento do Azure Data Lake foi projetada para dar suporte à semântica do sistema de arquivos no Armazenamento de Blobs do Azure. Dado que 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. Assim, o driver do Sistema de Arquivos Blob do Azure (ou ABFS) é um mero shim de cliente para a API REST.

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

Esquema de URI para dados de referência

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

Usando esse formato URI, as ferramentas e estruturas padrão do Hadoop podem ser usadas para fazer referência a 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 traduz o(s) recurso(s) especificado(s) no URI em arquivos e diretórios e faz chamadas para a API REST do Armazenamento do Azure Data Lake com essas referências.

Autenticação

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

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

  • Microsoft Entra ID OAuth Bearer Token: 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.

    Nota

    O Azure Data Lake Storage Gen2 suporta apenas pontos de extremidade do Azure AD v1.0.

Configuração

Toda a core-site.xml configuração para o driver ABFS é armazenada no arquivo de configuração. Em distribuições Hadoop com 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 suportadas 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óximos passos