Utiliser le stockage Azure avec des clusters Azure HDInsight
Vous pouvez stocker des données dans stockage Blob Azure ou Azure Data Lake Storage Gen2. Vous pouvez également choisir une combinaison de ces options. Ces options de stockage vous permettent de supprimer des clusters HDInsight servant aux calculs, sans perte de données utilisateur.
Apache Hadoop prend en charge une notion de système de fichiers par défaut. Le système de fichiers par défaut implique un schéma et une autorité par défaut. Il peut également être utilisé pour résoudre les chemins d'accès relatifs. Pendant le processus de création du cluster HDInsight, vous pouvez spécifier un conteneur de blobs dans Stockage Azure comme système de fichiers par défaut. Sinon, avec HDInsight 3.6, vous pouvez sélectionner Stockage Blob Azure ou Azure Data Lake Storage Gen2 comme système de fichiers par défaut avec quelques exceptions.
Dans cet article, vous découvrez le fonctionnement du stockage Azure avec des clusters HDInsight.
- Pour savoir comment fonctionne Data Lake Storage Gen2 avec les clusters HDInsight, consultez Utiliser Azure Data Lake Storage Gen2 avec des clusters Azure HDInsight.
- Pour plus d’informations sur la création d’un cluster HDInsight, consultez Créer des clusters Apache Hadoop dans HDInsight.
Important
Le type de compte de stockage BlobStorage peut uniquement être utilisé comme stockage secondaire pour les clusters HDInsight.
Type de compte de stockage | Services pris en charge | Niveaux de performances pris en charge | Niveaux de performances non pris en charge | Niveaux d’accès pris en charge |
---|---|---|---|---|
StorageV2 (usage général v2) | Objet blob | standard | Premium | Chaud, froid, archive* |
Stockage (v1 universel) | Objet blob | standard | Premium | N/A |
BlobStorage | Objet blob | standard | Premium | Chaud, froid, archive* |
Nous vous déconseillons d’utiliser le conteneur d’objets blob par défaut pour stocker des données d’entreprise. 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. Le conteneur par défaut contient les journaux des applications et du système. Assurez-vous de récupérer les journaux d’activité avant de supprimer le conteneur.
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.
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. Pour plus d’informations, voir Niveau d’accès archive.
Accès aux fichiers à partir de l’intérieur d’un cluster
Remarque
L’équipe du stockage Azure a interrompu tous les développements actifs sur WASB et recommande à tous les clients d’utiliser le pilote ABFS pour interagir avec le stockage Blob et ADLS Gen2. Pour plus d’informations, consultez Le pilote ABFS (Azure Blob File System) : un pilote Stockage Azure dédié pour Hadoop.
Utilisation du nom complet. Avec cette approche, vous fournissez le chemin d’accès complet au fichier auquel vous souhaitez accéder.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
Utilisation du format de chemin d’accès raccourci. Avec cette approche, vous remplacez le chemin d’accès à la racine du cluster par :
wasb:///<file.path>/ wasbs:///<file.path>/
Utilisation du chemin d’accès relatif. Avec cette approche, vous fournissez uniquement le chemin d’accès relatif au fichier auquel vous souhaitez accéder.
/<file.path>/
Exemples d’accès aux données
Les exemples sont basés sur une connexion ssh au nœud principal du cluster. Les exemples utilisent les trois schémas d’URI. Remplacez CONTAINERNAME
et STORAGEACCOUNT
par les valeurs correspondantes
Quelques commandes hdfs
Créez un fichier sur le stockage local.
touch testFile.txt
Créez des répertoires sur le stockage en cluster.
hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
Copiez les données du stockage local vers le stockage en 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/
Affichez le contenu du répertoire sur le stockage en cluster.
hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -ls wasbs:///sampledata2/ hdfs dfs -ls /sampledata3/
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
.
Création d’une table Hive
Trois emplacements de fichiers sont indiqués à titre d’illustration. Pour l’exécution réelle, n’utilisez qu’une seule des entrées 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/';
Accès aux fichiers à partir de l’extérieur d’un cluster
Microsoft fournit les outils suivants pour utiliser Stockage Azure :
Outil | Linux | OS X | Windows |
---|---|---|---|
Azure portal | ✔ | ✔ | ✔ |
Azure CLI | ✔ | ✔ | ✔ |
Azure PowerShell | ✔ | ||
AZCopy | ✔ | ✔ |
Identifier le chemin de stockage à partir d’Ambari
Pour identifier le chemin d'accès complet à la mémoire par défaut configurée, naviguez jusqu'à :
HDFS>Configs, puis entrez
fs.defaultFS
dans la zone de saisie du filtre.Pour vérifier si le magasin wasb est configuré comme stockage secondaire, naviguez jusqu'à :
HDFS>Configs, puis entrez
blob.core.windows.net
dans la zone de saisie du filtre.
Pour obtenir le chemin d’accès à l’aide de l’API REST Ambari, voir Obtenir le stockage par défaut.
Conteneurs d’objets blob
Pour utiliser des objets blob, commencez par créer un compte Stockage Azure. À cette étape, vous spécifiez la région Azure dans laquelle le compte de stockage est créé. Le cluster et le compte de stockage doivent être hébergés dans la même région. La base de données SQL Server de metastore Hive et la base de données SQL Server de metastore Apache Oozie doivent se trouver dans la même région.
Où qu’il réside, chaque objet blob que vous créez appartient à un conteneur de votre compte de stockage Azure. Ce conteneur peut être un blob existant créé en dehors de HDInsight. Il peut également s’agir d’un conteneur créé pour un cluster HDInsight.
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. Ne partagez pas un conteneur d’objets blob par défaut avec plusieurs clusters HDInsight. Cette action est susceptible d’endommager l’historique des travaux. Il est recommandé d’utiliser un conteneur différent pour chaque cluster. Placez les données partagées sur un compte de stockage lié spécifié pour tous les clusters concernés plutôt que sur le compte de stockage par défaut. Pour plus d'informations sur la configuration des comptes de stockage liés, consultez Créer des clusters HDInsight. Vous pouvez, toutefois, réutiliser un conteneur de stockage par défaut une fois le cluster HDInsight d'origine supprimé. 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 de blobs par défaut utilisé par un cluster HBase supprimé.
Notes
La fonctionnalité qui exige un transfert sécurisé applique toutes les demandes à votre compte par le biais d’une connexion sécurisée. Seul un cluster HDInsight version 3.6 ou plus récente prend en charge cette fonctionnalité. Pour plus d’informations, consultez Créer un cluster Apache Hadoop à l’aide de comptes de stockage avec transfert sécurisé dans Azure HDInsight.
Utiliser des comptes de stockage supplémentaires
Lorsque vous créez un cluster HDInsight, vous spécifiez le compte de stockage Azure que vous souhaitez lui associer. Vous pouvez également ajouter d’autres comptes de stockage à 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. Pour en savoir plus sur l'ajout de comptes de stockage supplémentaires, consultez la rubrique Création de clusters HDInsight.
Avertissement
L’utilisation d’un compte de stockage supplémentaire dans un autre emplacement que le cluster HDInsight n’est pas prise en charge.
Étapes suivantes
Dans cet article, vous avez appris à utiliser un stockage Azure compatible avec HDFS avec HDInsight. Ce stockage vous permet de créer des solutions à long terme et adaptables 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.
Pour plus d'informations, consultez les pages suivantes :
- Démarrage rapide : Créer un cluster Apache Hadoop
- Tutoriel : Créer des clusters HDInsight
- Utiliser Azure Data Lake Storage Gen2 avec des clusters Azure HDInsight
- Téléchargement de données vers HDInsight
- Tutoriel : Extraire, transformer et charger des données à l’aide d’Interactive Query sur Azure HDInsight
- Utiliser des signatures d’accès partagé Stockage Azure pour restreindre l’accès aux données avec HDInsight