Utiliser le stockage Azure avec des clusters Azure HDInsightUse Azure storage with Azure HDInsight clusters

Pour analyser des données dans un cluster HDInsight, vous pouvez stocker les données dans Stockage Azure, Azure Data Lake Storage Gen 1/Azure Data Lake Store Gen 2, ou une combinaison.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. Ces options de stockage vous permettent de supprimer des clusters HDInsight servant aux calculs, sans perte de données utilisateur.These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Apache Hadoop prend en charge une notion de système de fichiers par défaut.Apache Hadoop supports a notion of the default file system. Le système de fichiers par défaut implique un schéma et une autorité par défaut.The default file system implies a default scheme and authority. Il peut également être utilisé pour résoudre les chemins d'accès relatifs.It can also be used to resolve relative paths. Pendant le processus de création du cluster HDInsight, vous pouvez spécifier un conteneur d’objets blob dans Stockage Azure comme système de fichiers par défaut ou, avec HDInsight 3.6, vous pouvez sélectionner Stockage Azure ou Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen 2 en tant que système de fichiers par défaut avec quelques exceptions.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. Pour la prise en charge de l’utilisation de Data Lake Store Gen 1 en tant que stockage associé et par défaut, consultez Disponibilités pour le cluster HDInsight.For the supportability of using Data Lake Storage Gen 1 as both the default and linked storage, see Availability for HDInsight cluster.

Dans cet article, vous découvrez le fonctionnement du stockage Azure avec des clusters HDInsight.In this article, you learn how Azure Storage works with HDInsight clusters. Pour savoir comment Data Lake Storage Gen 1 fonctionne avec les clusters HDInsight, consultez Utiliser Azure Data Lake Storage avec des clusters HDInsight.To learn how Data Lake Storage Gen 1 works with HDInsight clusters, see Use Azure Data Lake Storage with Azure HDInsight clusters. Pour plus d’informations sur la création d’un cluster HDInsight, consultez Créer des clusters Apache Hadoop dans HDInsight.For more information about creating an HDInsight cluster, see Create Apache Hadoop clusters in HDInsight.

Le stockage Azure est une solution de stockage à la fois robuste et polyvalente qui s’intègre en toute transparence à HDInsight.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. HDInsight peut utiliser un conteneur d’objets blob dans le stockage Azure comme système de fichiers par défaut pour le cluster.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Grâce à une interface HDFS (Hadoop Distributed File System), l’ensemble des composants de HDInsight peut fonctionner directement sur les données structurées ou non structurées en tant qu’objets blob.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.

Important

Le type de compte de stockage BlobStorage peut uniquement être utilisé comme stockage secondaire pour les clusters HDInsight.Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Type de compte de stockageStorage account kind Services pris en chargeSupported services Niveaux de performances pris en chargeSupported performance tiers Niveaux d’accès pris en chargeSupported access tiers
StorageV2 (usage général v2)StorageV2 (general-purpose v2) BlobBlob standardStandard Chaud, froid, archive*Hot, Cool, Archive*
Stockage (v1 universel)Storage (general-purpose v1) BlobBlob standardStandard N/AN/A
BlobStorageBlobStorage BlobBlob standardStandard Chaud, froid, archive*Hot, Cool, Archive*

Nous vous déconseillons d’utiliser le conteneur d’objets blob par défaut pour stocker des données d’entreprise.We don't recommend that you use the default blob container for storing business data. Nous vous recommandons de supprimer le conteneur d’objets blob par défaut après chaque utilisation pour réduire les coûts de stockage.Deleting the default blob container after each use to reduce storage cost is a good practice. Le conteneur par défaut contient les journaux des applications et du système.The default container contains application and system logs. Assurez-vous de récupérer les journaux d’activité avant de supprimer le conteneur.Make sure to retrieve the logs before deleting the container.

Le partage d’un conteneur blob en tant que système de fichiers par défaut sur plusieurs clusters n’est pas pris en charge.Sharing one blob container as the default file system for multiple clusters isn't supported.

Notes

Le niveau d’accès archive est un niveau hors connexion dont la latence de récupération de plusieurs heures n’est pas recommandée pour une utilisation avec HDInsight.The Archive access tier is an offline tier that has a several hour retrieval latency and isn't recommended for use with HDInsight. Pour plus d’informations, voir Niveau d’accès archive.For more information, see Archive access tier.

Si vous choisissez de sécuriser votre compte de stockage à l’aide des restrictions de pare-feu et réseaux virtuels sur des réseaux sélectionnés, veillez à activer l’exception Autoriser les services approuvés de Microsoft... afin que HDInsight puisse accéder à votre compte de stockage.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.

Architecture de stockage HDInsightHDInsight storage architecture

Le schéma suivant résume l’architecture de stockage HDInsight relative au Stockage Azure :The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

Les clusters Hadoop utilisent l’API HDFS pour accéder aux données et les stocker dans le stockage BlobHadoop clusters use HDFS API to access and store data in Blob storage

HDInsight permet d'accéder au système de fichiers distribués (DFS) connecté localement aux nœuds de calcul.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Vous pouvez accéder à ce système de fichiers en utilisant l'URI complet, par exemple :This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

De plus, HDInsight permet d’accéder aux données stockées dans le stockage Azure.In addition, HDInsight allows you to access data that is stored in Azure Storage. La syntaxe est :The syntax is:

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

Voici des points à prendre en compte lorsque vous utilisez un compte de stockage Azure avec des clusters HDInsight.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Conteneurs dans les comptes de stockage connectés à un cluster : Comme le nom et la clé du compte sont associés au cluster durant la création, vous disposez d’un accès complet aux blobs de ces conteneurs.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.

  • Conteneurs publics ou blobs publics dans les comptes de stockage qui ne sont PAS connectés à un cluster : vous avez l’autorisation d’accès en lecture seule aux blobs dans les conteneurs.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.

Notes

Des conteneurs publics vous permettent d'obtenir une liste de tous les objets blob disponibles, ainsi que ses métadonnées.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. Vous pouvez accéder aux objets blob d'un objet blob public uniquement si vous connaissez leur URL exacte.Public blobs allow you to access the blobs only if you know the exact URL. Pour plus d’informations, consultez Gérer l’accès aux conteneurs et aux objets blob.For more information, see Manage access to containers and blobs.

  • Conteneurs privés dans les comptes de stockage qui ne sont PAS connectés à un cluster : vous ne pouvez pas accéder aux objets blob situés dans les conteneurs, sauf si vous définissez le compte de stockage lors de l'envoi des travaux 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. Une explication sera fournie plus loin dans cet article.This is explained later in this article.

Les comptes de stockage définis lors du processus de création et leurs clés sont stockés dans %HADOOP_HOME%/conf/core-site.xml sur les nœuds du 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. Le comportement par défaut de HDInsight consiste à utiliser les comptes de stockage définis dans le fichier core-site.xml.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. Vous pouvez modifier ce paramètre avec Apache Ambari.You can modify this setting using Apache Ambari.

Plusieurs travaux WebHCat, notamment Apache Hive, MapReduce, streaming Apache Hadoop et Apache Pig, peuvent véhiculer avec eux une description des comptes de stockage et des métadonnées.Multiple WebHCat jobs, including Apache Hive, MapReduce, Apache Hadoop streaming, and Apache Pig, can carry a description of storage accounts and metadata with them. (cela fonctionne actuellement pour Pig, pour les comptes de stockage, mais pas pour les métadonnées.) Pour plus d'informations, consultez la page Utilisation d'un cluster HDInsight avec des comptes de stockage et des metastores secondaires.(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.

Les objets blob peuvent être utilisés pour les données structurées et non structurées.Blobs can be used for structured and unstructured data. Les conteneurs d’objets blob stockent des données en tant que paires clé/valeur et sans hiérarchie de répertoires.Blob containers store data as key/value pairs, and there's no directory hierarchy. Cependant, vous pouvez utiliser la barre oblique (« / ») dans le nom de la clé pour la faire apparaître comme un fichier stocké dans une structure de répertoires.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. Par exemple, une clé d'objet blob peut être input/log1.txt.For example, a blob's key may be input/log1.txt. Il n'existe pas de répertoire input , mais la barre oblique figurant dans le nom de la clé lui donne l'aspect d'un chemin d'accès de fichier.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.

Avantages du stockage AzureBenefits of Azure Storage

La réduction des performances entraînée par la séparation des clusters de calcul et des ressources de stockage est compensée par le fait que les clusters de calcul sont créés à proximité des ressources du compte de stockage dans la région Azure, où le réseau à haut débit permet aux nœuds de calcul d’accéder efficacement aux données dans Stockage 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.

Voici les avantages offerts par le stockage de données dans un stockage Azure au lieu d’un système HDFS :There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Réutilisation et partage des données : les données du système HDFS sont situées dans le cluster de calcul.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Seules les applications pouvant accéder au cluster de calcul peuvent utiliser les données avec l'API HDFS.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. Vous pouvez accéder aux données du stockage Azure via les API HDFS ou les API REST de stockage Blob.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Vous pouvez donc utiliser un plus grand nombre d'applications (notamment d'autres clusters HDInsight) et d'outils pour produire et consommer des données.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.

  • Archivage des données : le stockage de données dans le stockage Azure permet de supprimer les clusters HDInsight ayant servi aux calculs, sans perte de données utilisateur.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.

  • Coût de stockage des données : le stockage à long terme des données dans DFS est plus coûteux que le stockage des données dans un stockage Azure, car le coût d’un cluster de calcul est plus élevé que celui d’un stockage 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. De plus, comme vous n’avez pas à recharger les données pour chaque génération de cluster de calcul, vous faites également des économies sur les chargements de données.In addition, because the data doesn't have to be reloaded for every compute cluster generation, you're also saving data loading costs.

  • Scale-out élastique : même si le système HDFS offre un système de fichiers scale-out, l’échelle est déterminée par le nombre de nœuds que vous créez pour votre 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. Au lieu de procéder ainsi, il est parfois plus simple de profiter des capacités d’évolution flexible que vous obtenez automatiquement dans le stockage Azure.Changing the scale can become a more complicated process than relying on the elastic scaling capabilities that you get automatically in Azure storage.

  • Géoréplication : vous pouvez géorépliquer le stockage Azure.Geo-replication: Your Azure storage can be geo-replicated. Si cette fonctionnalité permet la récupération géographique et la redondance des données, un basculement vers un emplacement géo-répliqué affecte sérieusement les performances et peut entraîner des frais supplémentaires.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. Nous vous recommandons donc de peser sérieusement le pour et le contre avant de choisir la géo-réplication.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Certains packages et travaux MapReduce peuvent créer des résultats intermédiaires que vous ne voulez pas stocker dans un stockage Azure.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. Dans ce cas, vous pouvez choisir de stocker les données dans un système HDFS local.In that case, you can elect to store the data in the local HDFS. En fait, HDInsight utilise DFS pour plusieurs de ces résultats intermédiaires dans les tâches Hive et d'autres processus.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Notes

La plupart des commandes HDFS (par exemple, ls, copyFromLocal et mkdir) fonctionnent toujours comme prévu.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Seules les commandes propres à l’implémentation HDFS native (ou DFS), comme fschk et dfsadmin, se comportent différemment dans le stockage 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.

Adressage des fichiers dans le stockage AzureAddress files in Azure storage

Le modèle d’URI pour accéder aux fichiers du stockage Azure à partir de HDInsight est le suivant :The URI scheme for accessing files in Azure storage from HDInsight is:

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

Le modèle d'URI offre à la fois un accès non chiffré (avec le préfixe wasb: ) et un accès chiffré SSL (avec wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with wasbs). Dans la mesure du possible, nous vous recommandons d’utiliser wasbs , même lorsqu’il s’agit d’accéder à des données qui résident dans la même région Azure.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

<BlobStorageContainerName> identifie le nom du conteneur d’objets blob dans le stockage Azure.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. <StorageAccountName> identifie le nom du compte Stockage Azure.The <StorageAccountName> identifies the Azure Storage account name. Un nom de domaine complet (FQDN) est requis.A fully qualified domain name (FQDN) is required.

Si <BlobStorageContainerName> et <StorageAccountName> ne sont pas spécifiés, le système de fichiers par défaut est utilisé.If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. Pour les fichiers du système de fichiers par défaut, vous pouvez utiliser un chemin d'accès relatif ou absolu.For the files on the default file system, you can use a relative path or an absolute path. Par exemple, le fichier hadoop-mapreduce-examples.jar fourni avec les clusters HDInsight peut être désigné pour l'une des utilisations suivantes :For example, the hadoop-mapreduce-examples.jar file that comes with HDInsight clusters can be referred to by using one of the following:

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

Notes

Le nom du fichier est hadoop-examples.jar sur les clusters HDInsight version 2.1 et 1.6.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

Le chemin d'accès correspond au nom du chemin du fichier ou du répertoire HDFS.The path is the file or directory HDFS path name. Comme les conteneurs du stockage Azure sont des magasins de valeurs de clés, il n'y a pas de système de fichiers hiérarchique.Because containers in Azure storage are key-value stores, there is no true hierarchical file system. Une barre oblique (« / ») à l'intérieur d'une clé d'objet blob est interprétée comme un séparateur de répertoire.A slash character ( / ) inside a blob key is interpreted as a directory separator. Par exemple, le nom d'objet blob pour hadoop-mapreduce-examples.jar est :For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

Notes

Lorsque vous utilisez des objets blob hors de HDInsight, la plupart des utilitaires ne reconnaissent pas le format WASB et attendent plutôt un format de chemin d’accès basique, comme 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.

Conteneurs d’objets blobBlob containers

Pour utiliser des objets blob, commencez par créer un compte Stockage Azure.To use blobs, you first create an Azure Storage account. À cette étape, vous spécifiez une région Azure dans laquelle le compte de stockage est créé.As part of this, you specify an Azure region where the storage account is created. Le cluster et le compte de stockage doivent être hébergés dans la même région.The cluster and the storage account must be hosted in the same region. La base de données SQL Server de metastore Hive et la base de données SQL Server de metastore Apache Oozie doivent également se trouver dans la même région.The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must also be located in the same region.

Où qu’il réside, chaque objet blob que vous créez appartient à un conteneur de votre compte de stockage Azure.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Ce conteneur peut être un objet blob existant créé hors de HDInsight ou un conteneur créé pour un 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.

Le conteneur d’objets blob par défaut stocke les informations spécifiques de cluster telles que l’historique et les journaux d’activité des travaux.The default Blob container stores cluster-specific information such as job history and logs. Ne partagez pas un conteneur d’objets blob par défaut avec plusieurs clusters HDInsight.Don't share a default Blob container with multiple HDInsight clusters. Cela est susceptible d’endommager l’historique des travaux.This might corrupt job history. Il est recommandé d’utiliser un conteneur différent pour chaque cluster et de placer des données partagées sur un compte de stockage lié et spécifié dans le déploiement de tous les clusters pertinents, plutôt que d’utiliser le compte de stockage par défaut.It's 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. Pour plus d'informations sur la configuration des comptes de stockage liés, consultez Créer des clusters HDInsight.For more information on configuring linked storage accounts, see Create HDInsight clusters. Vous pouvez, toutefois, réutiliser un conteneur de stockage par défaut une fois le cluster HDInsight d'origine supprimé.However you can reuse a default storage container after the original HDInsight cluster has been deleted. Pour les clusters HBase, vous pouvez conserver le schéma et les données de la table HBase en créant un cluster HBase à l’aide du conteneur d’objets blob par défaut utilisé par un cluster HBase ayant été supprimé.For HBase clusters, you can actually keep 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.

Notes

La fonctionnalité qui exige un transfert sécurisé applique toutes les demandes à votre compte par le biais d’une connexion sécurisée.The feature that requires secure transfer enforces all requests to your account through a secure connection. Seul un cluster HDInsight version 3.6 ou plus récente prend en charge cette fonctionnalité.Only HDInsight cluster version 3.6 or newer supports this feature. Pour plus d’informations, consultez Créer un cluster Apache Hadoop à l’aide de comptes de stockage avec transfert sécurisé dans Azure HDInsight.For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Interaction avec Stockage AzureInteracting with Azure storage

Microsoft fournit les outils suivants pour utiliser Stockage Azure :Microsoft provides the following tools to work with Azure Storage:

OutilTool LinuxLinux OS XOS X WindowsWindows
Portail AzureAzure portal
Interface de ligne de commande AzureAzure CLI
Azure PowerShellAzure PowerShell
AZCopyAzCopy

Utiliser des comptes de stockage supplémentairesUse additional storage accounts

Lorsque vous créez un cluster HDInsight, vous spécifiez le compte de stockage Azure que vous souhaitez lui associer.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Outre ce compte de stockage, vous pouvez en ajouter d’autres à partir du même abonnement Azure ou à partir d’autres abonnements Azure pendant le processus de création ou à l’issue de la création d’un 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. Pour en savoir plus sur l'ajout de comptes de stockage supplémentaires, consultez la rubrique Création de clusters HDInsight.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Avertissement

L’utilisation d’un compte de stockage supplémentaire dans un autre emplacement que le cluster HDInsight n’est pas prise en charge.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Étapes suivantesNext steps

Dans cet article, vous avez appris à utiliser un stockage Azure compatible avec HDFS avec HDInsight.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. Ceci vous permet de créer des solutions à long terme et évolutives d’acquisition et d’archivage de données et d’utiliser HDInsight pour déverrouiller les informations des données structurées et non structurées stockées.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.

Pour plus d'informations, consultez les pages suivantes :For more information, see: