O driver Azure Blob File System (ABFS): um driver dedicado de Armazenamento do Azure para Hadoop

Um dos principais métodos de acesso para dados no Armazenamento do Azure Data Lake é por meio do Hadoop FileSystem. Os utilizadores do Data Lake Storage do Armazenamento de Blobs do Azure podem aceder ao driver Azure Blob File System ou ABFS. O ABFS faz parte do Apache Hadoop e está incluído em muitas das distribuições comerciais do Hadoop. Ao usar o driver ABFS, muitas aplicações e frameworks podem aceder a dados no Armazenamento de Blobs do Azure sem que qualquer código faça referência explícita ao Data Lake Storage.

Capacidade prévia: o Windows Armazenamento do Azure Blob driver

O controlador do Armazenamento de Blobs do Windows Azure, ou WASB driver, disponibilizou originalmente o suporte para o Armazenamento de Blobs do Azure. Este driver realiza a complexa tarefa de mapear a semântica do sistema de ficheiros (conforme exigido pela interface Hadoop FileSystem) para a interface de estilo object store exposta pelo Armazenamento de Blobs do Azure. Este driver continua a suportar este modelo, proporcionando acesso de alto desempenho a dados armazenados em blobs. No entanto, contém uma quantidade significativa de código que executa este mapeamento, o que dificulta a sua manutenção. Além disso, FileSystem.rename() e FileSystem.delete() aplicados a diretórios exigem que o driver realize um grande número de operações, porque os armazenamentos de objetos não têm suporte nativo de diretórios. Esta sobrecarga frequentemente leva a um desempenho degradado. O controlador ABFS supera as deficiências inerentes do WASB.

Como funciona o ABFS

A interface REST do Azure Data Lake Storage suporta a semântica do sistema de ficheiros no Armazenamento de Blobs do Azure. Dado que o sistema de ficheiros Hadoop também foi concebido para suportar a mesma semântica, não é necessário um mapeamento complexo no driver. Assim, o controlador do sistema de ficheiros de blobs do Azure (ou ABFS) é uma simples camada cliente para a API REST.

No entanto, o driver deve ainda assim desempenhar algumas funções:

Esquema de URI para dados de referência

Em consonância com outras implementações de sistemas de ficheiros dentro do Hadoop, o driver ABFS define o seu próprio esquema de URI para que recursos (diretórios e ficheiros) possam ser endereçados de forma distinta. O esquema de URI está documentado em Usar o URI do Armazenamento do Azure Data Lake. A estrutura do URI é: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>, onde abfss:// usa TLS para ligações encriptadas.

Ao utilizar este formato URI, as ferramentas e frameworks padrão do Hadoop podem referenciar estes 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 os recursos especificados no URI para ficheiros e diretórios e faz chamadas para a API REST do Azure Data Lake Storage com essas referências.

Autenticação

O driver ABFS suporta duas formas de autenticação para que a aplicação Hadoop possa aceder de forma segura a recursos contidos numa conta compatível com Data Lake Storage. A autenticação requer uma conta de armazenamento com espaço de nomes hierárquico ativado. Para detalhes completos dos esquemas de autenticação disponíveis, consulte o guia de segurança do Armazenamento do Azure. Os esquemas de autenticação suportados são:

  • Chave Partilhada: Este método de autenticação concede aos utilizadores acesso a todos os recursos da conta. A chave é encriptada e armazenada na configuração Hadoop.

  • Token OAuth bearer do Microsoft Entra ID: O controlador obtém e renova os tokens bearer do Microsoft Entra utilizando a identidade do utilizador final ou um principal de serviço configurado. Quando utiliza este modelo de autenticação, autoriza todos os acessos por chamada, utilizando a identidade associada ao token fornecido, que é avaliada com base na POSIX Controlo de Acesso List (ACL) atribuída.

    Nota

    Azure Data Lake Storage suporta autenticação Microsoft Entra ID OAuth 2.0.

Configuração

Armazene toda a configuração do driver ABFS no core-site.xml ficheiro de configuração. Nas distribuições Hadoop que incluem Ambari, também pode gerir a configuração usando o portal web ou a Ambari REST API.

Para detalhes sobre todas as entradas de configuração suportadas, consulte a documentação oficial do Hadoop.

Próximos passos