Usar o Armazenamento do Azure com clusters HDInsight
Você pode armazenar dados no Armazenamento de Blobs do Azure ou no Azure Data Lake Storage Gen2. Ou uma combinação dessas opções. Essas opções de armazenamento permitem que os clusters do HDInsight usados para cálculo sejam excluídos com segurança sem que ocorra perda de dados do usuário.
O Apache Hadoop dá suporte a uma noção do sistema de arquivos padrão. O sistema de arquivos padrão implica esquema e autoridade padrões. Ele também pode ser usado 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, é possível selecionar o Armazenamento de Blobs do Azure ou Azure Data Lake Storage Gen2 como o sistema de arquivos padrão com algumas exceções.
Neste artigo, você aprenderá como funciona o Armazenamento do Azure com clusters HDInsight.
- Para saber como o Data Lake Storage Gen2 funciona com clusters do HDInsight, consulte Usar o Azure Data Lake Storage Gen2 com clusters do Azure HDInsight.
- Para saber mais sobre a criação de um cluster HDInsight, consulte Criar clusters do Apache Hadoop no HDInsight.
Importante
O tipo de conta de armazenamento BlobStorage só pode ser usado como armazenamento secundário para clusters do HDInsight.
Tipo de conta de armazenamento | Serviços com suporte | Níveis de desempenho compatíveis | Níveis de desempenho sem suporte | Camadas de acesso compatíveis |
---|---|---|---|---|
StorageV2 (uso geral v2) | Blob | Standard | Premium | Frequente, Esporádico, Arquivos* |
Armazenamento (uso geral v1) | Blob | Standard | Premium | N/D |
BlobStorage | Blob | Standard | Premium | Frequente, Esporádico, Arquivos* |
Não recomendamos o contêiner de blobs padrão para armazenar dados corporativos. É uma prática recomendada excluir o contêiner de blobs padrão após cada uso para reduzir o custo de armazenamento. O contêiner padrão contém os logs do aplicativo e do sistema. Certifique-se de recuperar os logs antes de excluir o contêiner.
Não há suporte para o compartilhamento de um contêiner de blob como o sistema de arquivos padrão para vários clusters.
Observação
A camada de acesso aos arquivos é um nível offline que tem uma latência de recuperação de várias horas e não é recomendada para uso com o HDInsight. Para saber mais, consulte Camada de acesso aos arquivos.
Acessar arquivos do cluster
Observação
A equipe de armazenamento do Azure descontinuou todos os desenvolvimentos ativos no WASB e recomendou que todos os clientes usem o driver do ABFS para interagir com o Blob e o ADLS gen2. Para obter mais informações, consulte ABFS (driver de sistema de arquivos de Blob do Azure): um driver de Armazenamento do Microsoft Azure dedicado para Hadoop
Usando o nome totalmente qualificado. Com essa abordagem, é necessário fornecer o caminho completo para o arquivo que você deseja acessar.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
Usando o formato de caminho encurtado. Com essa abordagem, você substitui o caminho até a raiz do cluster com:
wasb:///<file.path>/ wasbs:///<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
Criar um arquivo no armazenamento local.
touch testFile.txt
Criar 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/
Copiar dados do armazenamento local para o armazenamento de 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/
Observação
Ao trabalhar com blobs fora do HDInsight, a maioria dos utilitários não reconhecem o formato WASB e, em vez disso, esperam um formato de caminho básico, como example/jars/hadoop-mapreduce-examples.jar
.
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 '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 |
---|---|---|---|
Azure portal | ✔ | ✔ | ✔ |
CLI do Azure | ✔ | ✔ | ✔ |
PowerShell do Azure | ✔ | ||
AzCopy | ✔ | ✔ |
Identificar o caminho de armazenamento do Ambari
Para identificar o caminho completo para o repositório padrão configurado, navegue até:
HDFS>Configs e digite
fs.defaultFS
na caixa de entrada de filtro.Para verificar se o repositório do WASB está configurado como armazenamento secundário, navegue até:
HDFS>Configs e digite
blob.core.windows.net
na caixa de entrada de filtro.
Para obter o caminho usando a API REST do Ambari, consulte Obter o armazenamento padrão.
Contêineres de blob
Para usar blobs, primeiro você deve criar uma conta de Armazenamento do Azure. Como parte dessa etapa, especifique uma região do Azure na qual a conta de armazenamento será criada. O cluster e a conta de armazenamento devem ser hospedados na mesma região. O banco de dados do SQL Server do metastore do Hive e o banco de dados do SQL Server do metastore do Apache Oozie também devem estar localizados na mesma região.
Independentemente de onde estiverem, cada blob que você criar pertencerá a um contêiner na sua conta de armazenamento do Azure. Esse contêiner pode ser um blob existente criado fora do HDInsight. Ou pode ser um contêiner que é criado para um cluster HDInsight.
O contêiner de blob padrão armazena informações específicas do cluster como logs e o histórico do trabalho. Não compartilhe um contêiner de armazenamento de blob padrão com vários clusters 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 de armazenamento vinculadas, veja Criar clusters do HDInsight. No entanto, você pode reutilizar um contêiner de armazenamento padrão depois que o cluster HDInsight original for excluído. Para clusters do HBase, você pode manter os dados e o esquema de tabela do HBase criando um cluster HBase com o contêiner de blob padrão usado por um cluster HBase que foi excluído
Observação
O recurso que exige transferência segura passa todas as solicitações para sua conta por uma conexão segura. Somente o cluster do HDInsight versão 3.6 ou mais recente oferece suporte a esse recurso. Para saber mais, confira Criar um cluster Apache Hadoop com contas de armazenamento para transferência segura no Azure HDInsight.
Usar contas de armazenamento adicionais
Ao criar um cluster HDInsight, você especifica a conta de armazenamento do Azure que deseja associar a ele. Além disso, você pode adicionar mais contas de armazenamento 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 de armazenamento, veja Criar clusters HDInsight.
Aviso
Não há suporte para o uso de uma conta de armazenamento adicional em um local diferente do cluster HDInsight.
Próximas etapas
Neste artigo, você aprendeu a usar o armazenamento do Azure compatível com HDFS com o HDInsight. Esse armazenamento permite que você crie soluções de aquisição de dados para arquivamento de longo prazo adaptáveis e use o HDInsight para desbloquear as informações nos dados armazenados estruturados e não estruturados.
Para obter mais informações, consulte:
- Início Rápido: Criar cluster do Apache Hadoop
- Tutorial: Criar clusters HDInsight
- Usar Gen2 de armazenamento do Azure Data Lake com clusters de HDInsight do Azure
- Carregar dados no HDInsight
- Tutorial: Extrair, transformar e carregar dados usando a Interactive Query no Azure HDInsight
- Usar Assinaturas de Acesso Compartilhado do Armazenamento do Azure para restringir o acesso a dados com o HDInsight