Usar o Azure Data Lake Storage Gen2 com clusters do Azure HDInsight

Azure Data Lake Storage Gen2 é um serviço de armazenamento em nuvem dedicado à análise de big data, criado no Armazenamento de Blobs do Azure. O Data Lake Storage Gen2 combina os recursos de Armazenamento de Blobs do Azure e Azure Data Lake Storage Gen1. O serviço resultante oferece recursos do Azure Data Lake Storage Gen1, incluindo: semântica do sistema de arquivos, segurança em nível de diretório e de arquivo e adaptabilidade. Junto com os recursos de baixo custo, armazenamento em camadas, alta disponibilidade e recuperação de desastres do armazenamento de Blob do Azure.

Para obter uma comparação completa das opções de criação de cluster usando Data Lake Storage Gen2, confira Comparar opções de armazenamento para uso com clusters Azure HDInsight.

Aviso

A cobrança de clusters HDInsight é proporcional por minuto, independentemente de você utilizá-los ou não. Certifique-se de excluir o cluster após utilizá-lo. Consulte como excluir um cluster HDInsight.

Disponibilidade o Data Lake Storage Gen2

O Data Lake Storage Gen2 está disponível como opção de armazenamento para quase todos os tipos de cluster do Azure HDInsight, como conta de armazenamento padrão e como conta de armazenamento adicional. O HBase, no entanto, só pode ter uma conta do Data Lake Storage Gen2.

Observação

Depois de selecionar Data Lake Storage Gen2 como seu tipo de armazenamento primário, você não pode selecionar um Data Lake Storage Gen1 como armazenamento adicional.

Criar clusters do HDInsight usando o Data Lake Storage Gen2

Use os links a seguir para obter instruções detalhadas sobre como criar clusters HDInsight com acesso ao Data Lake Storage Gen2.

Controle de Acesso para Data Lake Storage Gen2 no HDInsight

O Data Lake Storage Gen2 dá suporte a quais tipos de permissões?

O Data Lake Storage Gen2 usa um modelo de controle de acesso que oferece suporte ao controle de acesso baseado em função do Azure (RBAC do Azure) e listas de controle de acesso (ACLs) semelhantes a POSIX. O Data Lake Storage Gen1 dá suporte a listas de controle de acesso apenas para controlar o acesso aos dados.

O RBAC do Azure usa as atribuições de função para aplicar efetivamente conjuntos de permissões a usuários, grupos e entidades de serviço para recursos do Azure. Normalmente, esses recursos do Azure são restritos a recursos de nível superior (por exemplo, contas de Armazenamento de Blob do Azure). Para o Armazenamento de Blob do Azure e o Data Lake Storage Gen2, esse mecanismo foi estendido para o recurso do sistema de arquivos.

Para saber mais sobre as permissões de arquivo com RBAC do Azure, confira RBAC do Azure (controle de acesso baseado em função do Azure).

Para saber mais sobre permissões de arquivo com ACLs, confira Listas de controle de acesso em arquivos e diretórios.

Como fazer para controlar o acesso aos meus dados no Data Lake Storage Gen2?

A capacidade do cluster HDInsight de acessar arquivos no Data Lake Storage Gen2 é controlada por meio de identidades gerenciadas. Uma identidade gerenciada é uma identidade registrada no Microsoft Entra, cujas credenciais são gerenciadas pelo Azure. Com identidades gerenciadas, você não precisa registrar entidades de serviço no Microsoft Entra ID. Ou manter credenciais como certificados.

Os serviços do Azure têm dois tipos de identidades gerenciadas: atribuída pelo sistema e atribuída pelo usuário. O HDInsight usa identidades gerenciadas atribuídas pelo usuário para acessar o Data Lake Storage Gen2. Uma user-assigned managed identity é criada como um recurso autônomo do Azure. Por meio de um processo de criação, o Microsoft Azure cria uma identidade no locatário do Microsoft Entra confiado pela assinatura em uso. Depois que a identidade é criada, ela pode ser atribuída a uma ou mais instâncias de serviço do Azure.

O ciclo de vida de uma identidade atribuída pelo usuário é gerenciado separadamente do ciclo de vida das instâncias de serviço do Azure a que ela é atribuída. Para obter mais informações sobre identidades gerenciadas, confira O que são identidades gerenciadas para recursos do Azure?.

Como definir permissões para os usuários do Microsoft Entra consultarem dados no Data Lake Storage Gen2 usando o Hive ou outros serviços?

Para definir permissões para que os usuários consultem dados, use os grupos de segurança do Microsoft Entra como a entidade de segurança atribuída nas ACLs. Não atribua permissões de acesso aos arquivos diretamente a usuários ou entidades de serviço individualmente. Com os grupos de segurança do Microsoft Entra para controlar o fluxo de permissões, você pode adicionar e remover usuários ou entidades de serviço sem reaplicar ACLs a uma estrutura de diretório inteira. Você só precisa adicionar ou remover os usuários do grupo de segurança do Microsoft Entra pertinente. As ACLs não são herdadas e, por isso, reaplicar as ACLs exige a atualização da ACL em cada arquivo e subdiretório.

Acessar arquivos do cluster

Há várias maneiras de acessar os arquivos no Data Lake Storage Gen2 em um cluster HDInsight.

  • Usando o nome totalmente qualificado. Com essa abordagem, é necessário fornecer o caminho completo para o arquivo que você deseja acessar.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • Usando o formato de caminho encurtado. Com essa abordagem, você substitui o caminho até a raiz do cluster com:

    abfs:///<file.path>/
    
  • Usando o caminho relativo. Com essa abordagem, você só fornece o caminho relativo para o arquivo que deseja acessar.

    /<file.path>/
    

Exemplos de acesso a dados

Os exemplos são baseados em uma conexão SSH ao nó principal do cluster. Os exemplos usam todos os três esquemas de URI. Substitua CONTAINERNAME e STORAGEACCOUNT pelos valores relevantes

Alguns comandos do HDFS

  1. Criar um arquivo no armazenamento local.

    touch testFile.txt
    
  2. Criar diretórios no armazenamento de cluster.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Copiar dados do armazenamento local para o armazenamento de cluster.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Listar o conteúdo do diretório no armazenamento de cluster.

    hdfs dfs -ls abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -ls abfs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Como criar uma tabela Hive

Três locais de arquivo são mostrados para fins ilustrativos. Para a execução real, use apenas uma das entradas LOCATION.

DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
    t1 string,
    t2 string,
    t3 string,
    t4 string,
    t5 string,
    t6 string,
    t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

Próximas etapas