Utilizar o Azure Data Lake Storage Gen2 com clusters do Azure HDInsight
O Azure Data Lake Storage Gen2 é um serviço de armazenamento em nuvem dedicado à análise de big data, criado no armazenamento de Blob do Azure. O serviço resultante oferece recursos do Armazenamento do Azure Data Lake, incluindo: semântica do sistema de arquivos, segurança no nível do diretório e no nível do arquivo e adaptabilidade. Juntamente com os recursos de armazenamento hierárquico de baixo custo, 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 o Data Lake Storage Gen2, consulte Comparar opções de armazenamento para uso com clusters do Azure HDInsight.
Aviso
A cobrança de clusters HDInsight é rateada por minuto, quer você os use ou não. Certifique-se de excluir o cluster depois de terminar de usá-lo. Veja como excluir um cluster HDInsight.
Disponibilidade do Data Lake Storage Gen2
O Data Lake Storage Gen2 está disponível como uma opção de armazenamento para quase todos os tipos de cluster do Azure HDInsight como uma conta de armazenamento padrão e adicional. O HBase, no entanto, pode ter apenas uma conta com o Data Lake Storage Gen2.
Nota
Depois de selecionar o Data Lake Storage Gen2 como seu tipo de armazenamento principal, não é possível selecionar um Data Lake Storage Gen1 como armazenamento adicional.
Criar clusters 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.
- Utilizar o Portal
- Utilizar a CLI do Azure
- Atualmente, o PowerShell não tem suporte para a criação de um cluster HDInsight com o Azure Data Lake Storage Gen2.
Controle de acesso para o Data Lake Storage Gen2 no HDInsight
Que tipos de permissões são suportadas pelo Data Lake Storage Gen2?
O Data Lake Storage Gen2 usa um modelo de controle de acesso que dá suporte ao controle de acesso baseado em função do Azure (Azure RBAC) e às ACLs (listas de controle de acesso) semelhantes ao POSIX.
O RBAC do Azure usa 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 também para o Data Lake Storage Gen2, esse mecanismo foi estendido ao recurso do sistema de arquivos.
Para obter mais informações sobre permissões de arquivo com o Azure RBAC, consulte Controle de acesso baseado em função do Azure (Azure RBAC).
Para obter mais informações sobre permissões de arquivo com ACLs, consulte Listas de controle de acesso em arquivos e diretórios.
Como faço para controlar o acesso aos meus dados no Data Lake Storage Gen2?
A capacidade do cluster do HDInsight aceder aos ficheiros no Data Lake Storage Gen2 é controlada através de identidades geridas. 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ídas pelo sistema e atribuídas pelo usuário. O HDInsight utiliza identidades geridas atribuídas pelo utilizador para aceder ao Data Lake Storage Gen2. A user-assigned managed identity
é criado como um recurso autônomo do Azure. Por meio de um processo de criação, o Azure cria uma identidade no locatário do Microsoft Entra confiável pela assinatura em uso. Depois de criada, a identidade pode ser atribuída a uma ou mais instâncias do serviço do Azure.
O ciclo de vida das identidades atribuídas pelo utilizador é gerido separadamente do ciclo de vida das instâncias do serviço do Azure ao qual estão atribuídas. Para obter mais informações sobre identidades gerenciadas, consulte O que são identidades gerenciadas para recursos do Azure?.
Como faço para definir permissões para que os usuários do Microsoft Entra consultem 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 em ACLs. Não atribua diretamente permissões de acesso a arquivos a usuários individuais ou entidades de serviço. 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órios inteira. Você só precisa adicionar ou remover os usuários do grupo de segurança apropriado do Microsoft Entra. As ACLs não são herdadas, portanto, a reaplicação das ACLs requer a atualização da ACL em todos os arquivos e subdiretórios.
Aceder a ficheiros a partir do cluster
Há várias maneiras de acessar os arquivos no Data Lake Storage Gen2 a partir de um cluster HDInsight.
Utilizar o nome completamente qualificado. Com esta abordagem, fornece o caminho completo para o ficheiro ao qual pretende aceder.
abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
Utilizando o formato de caminho abreviado. Com essa abordagem, você substitui o caminho até a raiz do cluster por:
abfs:///<file.path>/
Utilizar o caminho relativo. Com esta abordagem, fornece apenas o caminho relativo para o ficheiro ao qual pretende aceder.
/<file.path>/
Exemplos de acesso a dados
Os exemplos são baseados em uma conexão ssh com o nó principal do cluster. Os exemplos usam os três esquemas de URI. Substitua CONTAINERNAME
e STORAGEACCOUNT
com os valores relevantes
Alguns comandos hdfs
Crie um arquivo no armazenamento local.
touch testFile.txt
Crie 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/
Copie dados do armazenamento local para o armazenamento em 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/
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/
Criando uma tabela do Hive
Três locais de arquivo são mostrados para fins ilustrativos. Para a execução real, use apenas uma das LOCATION
entradas.
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/';