Utilizar o armazenamento do Azure com clusters do Azure HDInsight

Pode armazenar dados no armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1 ou Azure Data Lake Storage Gen2. Ou uma combinação destas opções. Estas opções de armazenamento permitem-lhe eliminar em segurança clusters do HDInsight que são utilizados para computação sem perder dados de utilizador.

O Apache Hadoop suporta uma noção do sistema de ficheiros predefinido. 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 do HDInsight, pode especificar um contentor de blobs no Armazenamento do Azure como o sistema de ficheiros predefinido. Em alternativa, com o HDInsight 3.6, pode selecionar armazenamento de Blobs do Azure ou Azure Data Lake Storage Gen1/ Azure Data Lake Storage Gen2 como o sistema de ficheiros predefinido com algumas exceções. Para obter a capacidade de suporte da utilização de Data Lake Storage Gen1 como armazenamento predefinido e ligado, veja Disponibilidade para o cluster do HDInsight.

Neste artigo, ficará a saber como o Armazenamento do Azure funciona com clusters do HDInsight.

Importante

O blobStorage de tipo de conta de armazenamento só pode ser utilizado como armazenamento secundário para clusters do HDInsight.

Tipo de conta de armazenamento Serviços suportados Escalões de desempenho suportados Escalões de desempenho não suportados Camadas de acesso suportadas
StorageV2 (fins gerais v2) Blob Standard Premium Frequente, Esporádico, Arquivo*
Armazenamento (v1 de fins gerais) Blob Standard Premium N/D
BlobStorage Blob Standard Premium Frequente, Esporádico, Arquivo*

Não recomendamos que utilize o contentor de blobs predefinido para armazenar dados empresariais. Eliminar o contentor de blobs predefinido depois de cada utilização para reduzir o custo de armazenamento é uma prática recomendada. O contentor predefinido contém registos de aplicações e sistemas. Certifique-se de que obtém os registos antes de eliminar o contentor.

A partilha de um contentor de blobs como o sistema de ficheiros predefinido para vários clusters não é suportada.

Nota

A camada de acesso Arquivo é uma camada offline que tem uma latência de obtenção de várias horas e não é recomendada para utilização com o HDInsight. Para obter mais informações, veja Camada de acesso de arquivo.

Aceder a ficheiros a partir do cluster

Existem várias formas de aceder aos ficheiros no Data Lake Storage a partir de um cluster do HDInsight. O esquema URI fornece acesso não encriptado (com o prefixo wasb: ) e acesso encriptado TLS (com wasbs). Recomendamos a utilização de wasbs sempre que possível, mesmo ao aceder a dados que se encontrem dentro da mesma região no Azure.

  • 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 esta abordagem, substitui o caminho até à 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 baseiam-se numa ligação ssh ao nó principal do cluster. Os exemplos utilizam os três esquemas URI. Substituir CONTAINERNAME e STORAGEACCOUNT pelos valores relevantes

Alguns comandos hdfs

  1. Crie um ficheiro no armazenamento local.

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

    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 de clusters.

    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 conteúdos de diretórios no armazenamento de clusters.

    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.

Criar uma tabela do Hive

São apresentadas três localizações de ficheiro para fins ilustrativos. Para a execução real, utilize 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/';

Aceder a ficheiros de cluster externo

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 arquivo predefinido configurado, navegue para:

    HDFS>Configura e introduz fs.defaultFS na caixa de entrada do filtro.

  • Para verificar se o arquivo de wasb está configurado como armazenamento secundário, navegue para:

    HDFS>Configura e introduz blob.core.windows.net na caixa de entrada do filtro.

Para obter o caminho com a API REST do Ambari, veja Obter o armazenamento predefinido.

Contentores de blobs

Para utilizar blobs, primeiro tem de criar uma Conta do Storage do Azure. Como parte deste passo, especifique 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 metastore do Hive SQL Server base de dados e o metastore apache Oozie SQL Server base de dados têm de 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. Este contentor pode ser um blob existente criado fora do HDInsight. Em alternativa, pode ser um contentor criado para um cluster do 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. Esta ação pode danificar o histórico de tarefas. É recomendado utilizar um contentor diferente para cada cluster. Coloque dados partilhados numa conta de armazenamento ligada especificada para todos os clusters relevantes em vez da conta de armazenamento predefinida. 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 do HBase, pode realmente manter o esquema e os dados da tabela HBase ao criar um novo cluster do HBase com o contentor de blobs predefinido utilizado por um cluster HBase eliminado

Nota

A funcionalidade que requer transferência segura impõe todos os pedidos à sua conta através de uma ligação segura. Apenas a versão 3.6 ou mais recente do cluster do HDInsight suporta esta funcionalidade. Para obter mais informações, veja Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight (Criar um cluster do 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, pode adicionar contas de armazenamento adicionais a partir da mesma subscrição do Azure ou de diferentes subscrições 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 é suportado utilizar uma conta de armazenamento adicional numa localização diferente do cluster do HDInsight.

Passos seguintes

Neste artigo, aprendeu a utilizar o armazenamento do Azure compatível com HDFS através do HDInsight. Este armazenamento permite-lhe criar soluções de aquisição de dados adaptáveis, a longo prazo e utilizar o HDInsight para desbloquear as informações dentro dos dados estruturados e não estruturados armazenados.

Para obter mais informações, consulte: