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.

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

  1. Créez un fichier sur le stockage local.

    touch testFile.txt
    
  2. 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/
    
  3. 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/
    
  4. 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 :