Utilizar o armazenamento do Azure com clusters do Azure HDInsight
Você pode armazenar dados no armazenamento de Blob do Azure ou no Azure Data Lake Storage Gen2. Ou uma combinação destas opções. Essas opções de armazenamento permitem excluir com segurança clusters HDInsight usados para computação sem perder dados do usuário.
O Apache Hadoop suporta uma noção do sistema de arquivos padrão. O sistema de ficheiros predefinido implica um esquema e uma autoridade predefinidos. Também pode ser utilizado para resolver caminhos relativos. Durante o processo de criação do cluster HDInsight, você pode especificar um contêiner de blob no Armazenamento do Azure como o sistema de arquivos padrão. Ou com o HDInsight 3.6, você pode selecionar o armazenamento de Blob do Azure ou o Azure Data Lake Storage Gen2 como o sistema de arquivos padrão, com algumas exceções.
Neste artigo, ficará a saber como o Armazenamento do Azure funciona com clusters do HDInsight.
- Para saber como o Data Lake Storage Gen2 funciona com clusters HDInsight, consulte Usar o Azure Data Lake Storage Gen2 com clusters do Azure HDInsight.
- Para obter mais informações sobre como criar um cluster HDInsight, consulte Criar clusters Apache Hadoop no HDInsight.
Importante
Tipo de conta de armazenamento O BlobStorage só pode ser usado como armazenamento secundário para clusters HDInsight.
Tipo de conta de armazenamento | Serviços suportados | Escalões de desempenho suportados | Níveis de desempenho não suportados | Escalões de acesso suportados |
---|---|---|---|---|
StorageV2 (fins gerais v2) | Blob | Standard | Premium | Quente, Legal, Arquivo* |
Armazenamento (v1 de fins gerais) | Blob | Standard | Premium | N/A |
BlobStorage | Blob | Standard | Premium | Quente, Legal, Arquivo* |
Não recomendamos que você use o contêiner de blob padrão para armazenar dados corporativos. Eliminar o contentor de blobs predefinido depois de cada utilização para reduzir o custo de armazenamento é uma prática recomendada. O contêiner padrão contém logs de aplicativos e do sistema. Certifique-se de que obtém os registos antes de eliminar o contentor.
Não há suporte para o compartilhamento de um contêiner de blob como o sistema de arquivos padrão para vários clusters.
Nota
A camada de acesso ao Arquivo morto é uma camada offline que tem uma latência de recuperação de várias horas e não é recomendada para uso com o HDInsight. Para obter mais informações, consulte Camada de acesso ao arquivo.
Aceder a ficheiros a partir do cluster
Nota
A equipe de armazenamento do Azure descontinuou todos os desenvolvimentos ativos no WASB e recomenda que todos os clientes usem o driver ABFS para interagir com Blob e ADLS gen2. Para obter mais informações, consulte O driver do sistema de arquivos de Blob do Azure (ABFS): um driver de armazenamento dedicado do Azure para Hadoop
Utilizar o nome completamente qualificado. Com esta abordagem, fornece o caminho completo para o ficheiro ao qual pretende aceder.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
Utilizando o formato de caminho abreviado. Com essa abordagem, você substitui o caminho até a raiz do cluster por:
wasb:///<file.path>/ wasbs:///<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 wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
Copie dados do armazenamento local para o armazenamento em cluster.
hdfs dfs -copyFromLocal testFile.txt wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -copyFromLocal testFile.txt wasbs:///sampledata2/ hdfs dfs -copyFromLocal testFile.txt /sampledata3/
Listar o conteúdo do diretório no armazenamento de cluster.
hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -ls wasbs:///sampledata2/ hdfs dfs -ls /sampledata3/
Nota
Ao trabalhar com blobs fora do HDInsight, a maioria dos utilitários não reconhece o formato WASB e, em vez disso, espera um formato de caminho básico, tal como example/jars/hadoop-mapreduce-examples.jar
.
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 'wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/example/data/';
LOCATION 'wasbs:///example/data/';
LOCATION '/example/data/';
Acessar arquivos de fora do cluster
A Microsoft fornece as seguintes ferramentas para trabalhar com o Armazenamento do Azure:
Ferramenta | Linux | OS X | Windows |
---|---|---|---|
Portal do Azure | ✔ | ✔ | ✔ |
CLI do Azure | ✔ | ✔ | ✔ |
Azure PowerShell | ✔ | ||
AzCopy | ✔ | ✔ |
Identificar o caminho de armazenamento do Ambari
Para identificar o caminho completo para o armazenamento padrão configurado, navegue para:
Configurações do HDFS>e digite
fs.defaultFS
na caixa de entrada do filtro.Para verificar se o wasb store está configurado como armazenamento secundário, navegue para:
Configurações do HDFS>e digite
blob.core.windows.net
na caixa de entrada do filtro.
Para obter o caminho usando a API REST do Ambari, consulte Obter o armazenamento padrão.
Contentores de blobs
Para utilizar blobs, primeiro tem de criar uma Conta do Storage do Azure. Como parte desta etapa, você especifica uma região do Azure onde a conta de armazenamento é criada. O cluster e a conta do Storage têm de estar alojados na mesma região. O banco de dados SQL Server do metastore do Hive e o banco de dados do SQL Server do metastore Apache Oozie devem estar localizados na mesma região.
Independentemente do local onde se encontre, cada blob que criar pertence a um contentor na sua conta do Storage do Azure. Esse contêiner pode ser um blob existente criado fora do HDInsight. Ou pode ser um contêiner criado para um cluster HDInsight.
O contentor de blobs predefinido armazena informações específicas do cluster, como o histórico de tarefas e os registos. Não partilhe um contentor de blobs predefinido com vários clusters do HDInsight. Essa ação pode corromper o histórico de trabalhos. É recomendável usar um contêiner diferente para cada cluster. Coloque dados compartilhados em uma conta de armazenamento vinculada especificada para todos os clusters relevantes em vez da conta de armazenamento padrão. Para obter mais informações sobre como configurar contas do Storage ligadas, consulte Create HDInsight clusters (Criar clusters do HDInsight). No entanto, pode reutilizar um contentor de armazenamento predefinido depois de o cluster do HDInsight original ser eliminado. Para clusters HBase, você pode realmente manter o esquema e os dados da tabela HBase criando um novo cluster HBase usando o contêiner de blob padrão usado por um cluster HBase excluído
Nota
A funcionalidade que requer uma transferência segura impõe todos os pedidos à sua conta através de uma ligação segura. Somente o cluster HDInsight versão 3.6 ou mais recente oferece suporte a esse recurso. Para obter mais informações, consulte Criar cluster Apache Hadoop com contas de armazenamento de transferência segura no Azure HDInsight.
Utilizar contas de armazenamento adicionais
Ao criar um cluster do HDInsight, especifica a conta de armazenamento do Azure que quer associar ao mesmo. Além disso, você pode adicionar contas de armazenamento adicionais da mesma assinatura do Azure ou de diferentes assinaturas do Azure durante o processo de criação ou após a criação de um cluster. Para obter instruções sobre como adicionar mais contas do Storage, consulte Create HDInsight clusters (Criar clusters do HDInsight).
Aviso
Não há suporte para o uso de uma conta de armazenamento adicional em um local diferente do cluster HDInsight.
Próximos passos
Neste artigo, aprendeu a utilizar o armazenamento do Azure compatível com HDFS através do HDInsight. Esse armazenamento permite que você crie soluções de aquisição de dados de arquivamento adaptáveis e de longo prazo e use o HDInsight para desbloquear as informações dentro dos dados estruturados e não estruturados armazenados.
Para obter mais informações, consulte:
- Guia de início rápido: criar cluster Apache Hadoop
- Tutorial: Criar clusters HDInsight
- Utilizar o Azure Data Lake Storage Gen2 com clusters do Azure HDInsight
- Upload data to HDInsight (Carregar dados para o HDInsight)
- Tutorial: Extrair, transformar e carregar dados usando a Consulta Interativa no Azure HDInsight
- Utilizar Assinaturas de Acesso Partilhado do Storage do Azure para restringir o acesso aos dados com o HDInsight