Partilhar via


Utilizar o armazenamento do Azure com clusters do Azure HDInsight

Você pode armazenar dados no armazenamento de Blob do Azure, no Azure Data Lake Storage Gen1 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 Gen1/ Azure Data Lake Storage Gen2 como o sistema de arquivos padrão, com algumas exceções. Para saber a capacidade de suporte do uso do Data Lake Storage Gen1 como armazenamento padrão e vinculado, consulte Disponibilidade para cluster HDInsight.

Neste artigo, ficará a saber como o Armazenamento do Azure funciona com clusters do 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

  1. Crie um arquivo no armazenamento local.

    touch testFile.txt
    
  2. 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/
    
  3. 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/
    
  4. 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: