Usar o Armazenamento do Azure com clusters HDInsightUse Azure storage with Azure HDInsight clusters

Para analisar dados no cluster HDInsight, você pode armazenar os dados no armazenamento do Azure, Azure data Lake Storage Gen 1/Azure data Lake Storage Gen 2ou uma combinação.To analyze data in HDInsight cluster, you can store the data either in Azure Storage, Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen 2, or a combination. Essas opções de armazenamento permitem que você exclua com segurança os clusters HDInsight que são usados para computação sem perder dados do usuário.These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

O Apache Hadoop dá suporte a uma noção do sistema de arquivos padrão.Apache Hadoop supports a notion of the default file system. O sistema de arquivos padrão implica esquema e autoridade padrões.The default file system implies a default scheme and authority. Ele também pode ser usado para resolver caminhos relativos.It can also be used to resolve relative paths. Durante o processo de criação do cluster HDInsight, você pode especificar um contêiner de blobs no Armazenamento do Azure como o sistema de arquivos padrão ou, com o HDInsight 3.6, você pode selecionar o Armazenamento do Azure ou o Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen 2 como o sistema de arquivos padrão com algumas exceções.During the HDInsight cluster creation process, you can specify a blob container in Azure Storage as the default file system, or with HDInsight 3.6, you can select either Azure Storage or Azure Data Lake Storage Gen 1/ Azure Data Lake Storage Gen 2 as the default files system with a few exceptions. Para o suporte do uso do Data Lake Storage Gen 1 como o armazenamento padrão e o vinculado, veja Disponibilidade para o cluster HDInsight.For the supportability of using Data Lake Storage Gen 1 as both the default and linked storage, see Availability for HDInsight cluster.

Neste artigo, você aprenderá como funciona o Armazenamento do Azure com clusters HDInsight.In this article, you learn how Azure Storage works with HDInsight clusters. Para saber como o Data Lake Storage Gen 1 funciona com clusters HDInsight, veja Usar o Azure Data Lake Storage com clusters Azure HDInsight.To learn how Data Lake Storage Gen 1 works with HDInsight clusters, see Use Azure Data Lake Storage with Azure HDInsight clusters. Para saber mais sobre a criação de um cluster HDInsight, consulte Criar clusters do Apache Hadoop no HDInsight.For more information about creating an HDInsight cluster, see Create Apache Hadoop clusters in HDInsight.

O Armazenamento do Azure é uma solução de armazenamento de uso geral que se integra perfeitamente com o HDInsight.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. O HDInsight pode usar um contêiner de blobs no Armazenamento do Azure como o sistema de arquivos padrão para o cluster.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Através de uma interface HDFS (Sistema de Arquivos Distribuído Hadoop), o conjunto completo de componentes em HDInsight pode operar diretamente sobre os dados estruturados ou não estruturados armazenados como blobs.Through a Hadoop distributed file system (HDFS) interface, the full set of components in HDInsight can operate directly on structured or unstructured data stored as blobs.

Aviso

O tipo de conta de armazenamento BlobStorage pode ser usado apenas como armazenamento secundário para clusters HDInsight.Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Tipo de conta de armazenamentoStorage account kind Serviços com suporteSupported services Níveis de desempenho compatíveisSupported performance tiers Camadas de acesso compatíveisSupported access tiers
StorageV2 (uso geral v2)StorageV2 (general-purpose v2) BlobBlob StandardStandard Quente, frio e arquivo morto*Hot, Cool, Archive*
Armazenamento (uso geral v1)Storage (general-purpose v1) BlobBlob StandardStandard N/DN/A
BlobStorageBlobStorage BlobBlob StandardStandard Quente, frio e arquivo morto*Hot, Cool, Archive*

Não recomendamos o contêiner de blobs padrão para armazenar dados corporativos.We do not recommend that you use the default blob container for storing business data. É uma prática recomendada excluir o contêiner de blobs padrão após cada uso para reduzir o custo de armazenamento.Deleting the default blob container after each use to reduce storage cost is a good practice. O contêiner padrão contém os logs do aplicativo e do sistema.The default container contains application and system logs. Certifique-se de recuperar os logs antes de excluir o contêiner.Make sure to retrieve the logs before deleting the container.

Não há suporte para o compartilhamento de um contêiner de blobs como o sistema de arquivos padrão para vários clusters.Sharing one blob container as the default file system for multiple clusters is not supported.

Observação

A camada de acesso aos arquivos é um tipo offline que tem uma latência de recuperação de várias horas e não é recomendada para uso com o HDInsight.The Archive access tier is an offline tier that has a several hour retrieval latency and is not recommended for use with HDInsight. Para saber mais, consulte Camada de acesso aos arquivos.For more information, see Archive access tier.

Se você optar por proteger sua conta de armazenamento com as restrições de redes virtuais e firewalls em redes selecionadas, certifique-se de habilitar a exceção permitir serviços confiáveis da Microsoft... para que o HDInsight possa acessar seu armazenamento considerar.If you choose to secure your storage account with the Firewalls and virtual networks restrictions on Selected networks, be sure to enable the exception Allow trusted Microsoft services... so that HDInsight can access your storage account.

Arquitetura de armazenamento do HDInsightHDInsight storage architecture

O diagrama a seguir fornece uma exibição abstrata da arquitetura de armazenamento do HDInsight de uso do Armazenamento do Azure:The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

Clusters Hadoop usam a API HDFS para acessar e armazenar dados estruturados e não estruturados no armazenamento de blobs.Hadoop clusters use the HDFS API to access and store structured and unstructured data in Blob storage.

O HDInsight fornece acesso ao sistema de arquivos distribuídos que está anexado localmente aos nós de computação.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Esse sistema de arquivos pode ser acessado usando o URI totalmente qualificado, por exemplo:This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

Além disso, o HDInsight permite que você acesse os dados armazenados no Armazenamento do Azure.In addition, HDInsight allows you to access data that is stored in Azure Storage. A sintaxe é:The syntax is:

wasb://<containername>@<accountname>.blob.core.windows.net/<path>

Veja algumas considerações ao usar a conta de armazenamento do Azure com clusters HDInsight.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Contêineres nas contas de armazenamento conectadas a um cluster: Como o nome e a chave da conta estão associados ao cluster durante a criação, você tem acesso total aos blobs nesses contêineres.Containers in the storage accounts that are connected to a cluster: Because the account name and key are associated with the cluster during creation, you have full access to the blobs in those containers.

  • Contêineres públicos ou blobs públicos em contas de armazenamento que NÃO estão conectadas a um cluster: Você tem permissão somente leitura para os blobs nos contêineres.Public containers or public blobs in storage accounts that are NOT connected to a cluster: You have read-only permission to the blobs in the containers.

Observação

Um contêiner público permite obter uma lista de todos os blobs disponíveis nesse contêiner e obter metadados do contêiner.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. Um blob público somente permite acessar os blobs se você souber a URL exata.Public blobs allow you to access the blobs only if you know the exact URL. Para obter mais informações, veja Gerenciar o acesso a contêineres e blobs.For more information, see Manage access to containers and blobs.

  • Contêineres privados em contas de armazenamento que NÃO estão conectadas a um cluster: Não é possível acessar os blobs nos contêineres, a menos que você defina a conta de armazenamento ao enviar trabalhos do WebHCat.Private containers in storage accounts that are NOT connected to a cluster: You can't access the blobs in the containers unless you define the storage account when you submit WebHCat jobs. Isso será explicado mais adiante neste artigo.This is explained later in this article.

As contas de armazenamento que são definidas no processo de criação e suas chaves são armazenadas %HADOOP_HOME%/conf/core-site.xml no nos nós do cluster.The storage accounts that are defined in the creation process and their keys are stored in %HADOOP_HOME%/conf/core-site.xml on the cluster nodes. O comportamento padrão do HDInsight é usar as contas de armazenamento definidas no arquivo core-site.xml.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. Você pode modificar essa configuração usando o Apache Ambari.You can modify this setting using Apache Ambari.

Vários trabalhos do WebHCat, incluindo o Apache Hive, MapReduce, streaming do Apache Hadoop e o Apache Pig, podem conter uma descrição de contas de armazenamento e metadados.Multiple WebHCat jobs, including Apache Hive, MapReduce, Apache Hadoop streaming, and Apache Pig, can carry a description of storage accounts and metadata with them. (Isso funciona atualmente com o Pig para contas de armazenamento, mas não para metadados.) Para obter mais informações, consulte Usando um Cluster HDInsight com metastores e contas de armazenamento alternativas.(This currently works for Pig with storage accounts, but not for metadata.) For more information, see Using an HDInsight Cluster with Alternate Storage Accounts and Metastores.

Os blobs podem ser usados para dados estruturados e não estruturados.Blobs can be used for structured and unstructured data. Os contêineres de blob armazenam dados como pares de chave/valor, e não há nenhuma hierarquia de diretório.Blob containers store data as key/value pairs, and there is no directory hierarchy. No entanto, o caractere "/" pode ser usado dentro do nome de chave para parecer que um arquivo está armazenado em uma estrutura de diretório.However the slash character ( / ) can be used within the key name to make it appear as if a file is stored within a directory structure. Por exemplo, a chave de um blob pode ser input/log1.txt.For example, a blob's key may be input/log1.txt. Não existe nenhum diretório de entrada real, mas, devido à presença do caractere "/" no nome da chave, ele parece um caminho de arquivo.No actual input directory exists, but due to the presence of the slash character in the key name, it has the appearance of a file path.

Benefícios do Armazenamento do AzureBenefits of Azure Storage

O custo de desempenho implícito de não colocar clusters de computação e recursos de armazenamento é mitigado pela maneira como os clusters de computação são criados próximos aos recursos da conta de armazenamento na região do Azure, em que a rede de alta velocidade torna a ti eficiente para o nós de computação para acessar os dados dentro do armazenamento do Azure.The implied performance cost of not colocating compute clusters and storage resources is mitigated by the way the compute clusters are created close to the storage account resources inside the Azure region, where the high-speed network makes it efficient for the compute nodes to access the data inside Azure storage.

Há vários benefícios associados ao armazenamento de dados no Armazenamento do Azure em vez de no HDFS:There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Reutilização e compartilhamento de dados: Os dados no HDFS estão localizados dentro do cluster de computação.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Apenas os aplicativos que têm acesso ao cluster de computação podem usar os dados usando a API HDFS.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. Os dados no armazenamento do Azure podem ser acessados por meio das APIs HDFS ou por meio das APIs REST do armazenamento de BLOBs.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Assim, um conjunto maior de aplicativos (incluindo outros clusters HDInsight) e ferramentas podem ser usados para produzir e consumir os dados.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.

  • Arquivamento de dados: Armazenar dados no armazenamento do Azure permite que os clusters HDInsight usados para computação sejam excluídos com segurança sem perder dados do usuário.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.

  • Custo de armazenamento de dados: Armazenar dados no DFS a longo prazo é mais caro do que armazenar os dados no armazenamento do Azure porque o custo de um cluster de computação é maior que o custo do armazenamento do Azure.Data storage cost: Storing data in DFS for the long term is more costly than storing the data in Azure storage because the cost of a compute cluster is higher than the cost of Azure storage. Além disso, como os dados não precisam ser recarregados para cada geração de cluster de computação, você está economizando em custos de carregamento de dados.In addition, because the data does not have to be reloaded for every compute cluster generation, you are also saving data loading costs.

  • Expansão elástica: Embora o HDFS forneça um sistema de arquivos dimensionado, a escala é determinada pelo número de nós que você cria para o cluster.Elastic scale-out: Although HDFS provides you with a scaled-out file system, the scale is determined by the number of nodes that you create for your cluster. A alteração da escala pode se tornar um processo mais complicado do que depender dos recursos de dimensionamento elástico do Armazenamento do Azure que você obtém automaticamente.Changing the scale can become a more complicated process than relying on the elastic scaling capabilities that you get automatically in Azure storage.

  • Replicação geográfica: O armazenamento do Azure pode ser replicado geograficamente.Geo-replication: Your Azure storage can be geo-replicated. Embora isso forneça redundância de dados e recuperação geográfica, um failover para o local replicado geograficamente afetará seriamente o desempenho e poderá incorrer em custos adicionais.Although this gives you geographic recovery and data redundancy, a failover to the geo-replicated location severely impacts your performance, and it may incur additional costs. Portanto, nossa recomendação é escolher a replicação geográfica com sabedoria e somente se o valor dos dados compensar o custo adicional.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Determinados trabalhos e pacotes do MapReduce podem criar resultados intermediários que você não deseja realmente armazenar no contêiner de Armazenamento do Azure.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. Nesse caso, você ainda pode optar por armazenar os dados no HDFS local.In that case, you can elect to store the data in the local HDFS. Na verdade, o HDInsight usa o DFS para vários desses resultados intermediários em trabalhos Hive e outros processos.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Observação

A maioria dos comandos HDFS (por exemplo, ls, copyFromLocal e mkdir) ainda funciona conforme o esperado.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Apenas os comandos específicos à implementação nativa do HDFS (que é conhecida como DFS), como fschk e dfsadmin mostram um comportamento diferente no Armazenamento do Azure.Only the commands that are specific to the native HDFS implementation (which is referred to as DFS), such as fschk and dfsadmin, show different behavior in Azure storage.

Arquivos de endereços no armazenamento do AzureAddress files in Azure storage

O esquema de URI para acessar arquivos no Armazenamento do Azure pelo HDInsight é:The URI scheme for accessing files in Azure storage from HDInsight is:

wasb://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/<path>

O esquema de URI fornece acesso sem criptografia (com o prefixo wasb: ) e acesso criptografado SSL (com wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with wasbs). Recomendamos usar wasbs sempre que possível, mesmo ao acessar dados que residem dentro da mesma região do Azure.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

O <BlobStorageContainerName> identifica o nome do contêiner de blob no armazenamento do Azure.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. O <StorageAccountName> identifica o nome da conta de armazenamento do Azure.The <StorageAccountName> identifies the Azure Storage account name. Um FQDN (nome de domínio totalmente qualificado) é necessário.A fully qualified domain name (FQDN) is required.

Se nem <StorageAccountName> nem tiver sido especificado, o sistema de arquivos padrão será usado. <BlobStorageContainerName>If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. Para os arquivos no sistema de arquivos padrão, você pode usar um caminho absoluto ou um caminho relativo.For the files on the default file system, you can use a relative path or an absolute path. Por exemplo, o arquivo hadoop-mapreduce-examples.jar fornecido com clusters HDInsight pode ser referenciado para usar um dos seguintes procedimentos:For example, the hadoop-mapreduce-examples.jar file that comes with HDInsight clusters can be referred to by using one of the following:

wasb://mycontainer@myaccount.blob.core.windows.net/example/jars/hadoop-mapreduce-examples.jar
wasb:///example/jars/hadoop-mapreduce-examples.jar
/example/jars/hadoop-mapreduce-examples.jar

Observação

O nome do arquivo é hadoop-examples.jar nos clusters HDInsight versões 2.1 e 1.6.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

O caminho é o nome do caminho do HDFS do arquivo ou diretório.The path is the file or directory HDFS path name. Como os contêineres no Armazenamento do Azure são um repositório de chave-valor, não há nenhum sistema de arquivos hierárquico verdadeiro.Because containers in Azure storage are key-value stores, there is no true hierarchical file system. Um caractere "/" dentro de uma chave de blob é interpretado como um separador de diretório.A slash character ( / ) inside a blob key is interpreted as a directory separator. Por exemplo, o nome do blob para hadoop-mapreduce-examples.jar é:For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

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.When working with blobs outside of HDInsight, most utilities do not recognize the WASB format and instead expect a basic path format, such as example/jars/hadoop-mapreduce-examples.jar.

Contêineres de blobBlob containers

Para usar BLOBs, você primeiro cria uma conta de armazenamento do Azure.To use blobs, you first create an Azure Storage account. Como parte desse processo, especifique uma região do Azure na qual a conta de armazenamento será criada.As part of this, you specify an Azure region where the storage account is created. O cluster e a conta de armazenamento devem ser hospedados na mesma região.The cluster and the storage account must be hosted in the same region. O banco de dados SQL Server do metastore do Hive e o banco de dados SQL Server do metastore do Oozie do Apache também devem estar localizados na mesma região.The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must also be located in the same region.

Independentemente de onde estiverem, cada blob que você criar pertencerá a um contêiner na sua conta de armazenamento do Azure.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Esse contêiner pode ser um contêiner de armazenamento de blob existente criado fora do HDInsight, ou pode ser um contêiner criado para um cluster HDInsight.This container may be an existing blob that was created outside of HDInsight, or it may be a container that is created for an HDInsight cluster.

O contêiner de blob padrão armazena informações específicas do cluster como logs e o histórico do trabalho.The default Blob container stores cluster-specific information such as job history and logs. Não compartilhe um contêiner de armazenamento de blob padrão com vários clusters HDInsight.Don't share a default Blob container with multiple HDInsight clusters. Isso pode corromper o histórico de trabalhos.This might corrupt job history. É recomendável usar um contêiner diferente para cada cluster e colocar os dados compartilhados em uma conta de armazenamento vinculada especificada na implantação de todos os clusters relevantes, e não na conta de armazenamento padrão.It is recommended to use a different container for each cluster and put shared data on a linked storage account specified in deployment of all relevant clusters rather than the default storage account. Para obter mais informações sobre como configurar contas de armazenamento vinculadas, consulte Criar clusters HDInsight.For more information on configuring linked storage accounts, see Create HDInsight clusters. No entanto, você pode reutilizar um contêiner de armazenamento padrão depois que o cluster HDInsight original for excluído.However you can reuse a default storage container after the original HDInsight cluster has been deleted. Para clusters HBase, você pode realmente manter os dados e o esquema de tabela do HBase criando um novo cluster HBase com o contêiner de blobs padrão usado por um cluster HBase que foi excluído.For HBase clusters, you can actually retain the HBase table schema and data by creating a new HBase cluster using the default blob container that is used by an HBase cluster that has been deleted.

Observação

O recurso que exige transferência segura passa todas as solicitações para sua conta por uma conexão segura.The feature that requires secure transfer enforces all requests to your account through a secure connection. Somente o cluster do HDInsight versão 3.6 ou mais recente oferece suporte a esse recurso.Only HDInsight cluster version 3.6 or newer supports this feature. Para saber mais, confira Criar um cluster Apache Hadoop com contas de armazenamento para transferência segura no Azure HDInsight.For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Interagindo com o armazenamento do AzureInteracting with Azure storage

A Microsoft fornece as seguintes ferramentas para trabalhar com o armazenamento do Azure:Microsoft provides the following tools to work with Azure Storage:

FerramentaTool LinuxLinux OS XOS X WindowsWindows
Portal do AzureAzure portal
CLI do AzureAzure CLI
PowerShell do AzureAzure PowerShell
AzCopyAzCopy

Usar contas de armazenamento adicionaisUse additional storage accounts

Ao criar um cluster HDInsight, você especifica a conta de armazenamento do Azure que deseja associar a ele.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Além dessa conta de armazenamento, 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.In addition to this storage account, you can add additional storage accounts from the same Azure subscription or different Azure subscriptions during the creation process or after a cluster has been created. Para obter instruções sobre como adicionar mais contas de armazenamento, veja Criar clusters HDInsight.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Aviso

Não há suporte para o uso de uma conta de armazenamento adicional em um local diferente do cluster HDInsight.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Próximas etapasNext steps

Neste artigo, você aprendeu a usar o armazenamento do Azure compatível com HDFS com o HDInsight.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. Isso permite que você crie soluções de aquisição de dados para arquivamento de longo prazo escalonáveis e use o HDInsight para desbloquear as informações nos dados armazenados estruturados e não estruturados.This allows you to build scalable, long-term, archiving data acquisition solutions and use HDInsight to unlock the information inside the stored structured and unstructured data.

Para obter mais informações, consulte:For more information, see: