Gestion du stockage et des systèmes de fichiers - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion du stockage et des systèmes de fichiers

Amazon EMR et Hadoop fournissent une variété de systèmes de fichiers que vous pouvez utiliser lors du traitement des étapes du cluster. Vous spécifiez le système de fichiers à utiliser par le préfixe URI utilisé pour accéder aux données. Par exemple, s3://amzn-s3-demo-bucket1/path fait référence à un compartiment Amazon S3 en utilisantEMRFS. Le tableau suivant répertorie les systèmes de fichiers disponibles, avec des recommandations sur les moments où il est préférable de les utiliser.

Amazon EMR et Hadoop utilisent généralement au moins deux des systèmes de fichiers suivants lors du traitement d'un cluster. HDFSet EMRFS sont les deux principaux systèmes de fichiers utilisés avec AmazonEMR.

Important

À partir de la EMR version 5.22.0 d'Amazon, Amazon EMR utilise AWS Signature version 4 exclusivement pour authentifier les demandes adressées à Amazon S3. EMRLes versions antérieures d'Amazon utilisent AWS la version 2 de Signature dans certains cas, sauf si les notes de publication indiquent que la version 4 de Signature est utilisée exclusivement. Pour plus d'informations, consultez les sections Authentification des demandes (AWS Signature version 4) et Authentification des demandes (AWS Signature version 2) dans le manuel Amazon Simple Storage Service Developer Guide.

Système de fichiers Préfixe Description
HDFS hdfs:// (ou aucun préfixe)

HDFSest un système de fichiers distribué, évolutif et portable pour Hadoop. L'un des avantages HDFS est la connaissance des données entre les nœuds du cluster Hadoop qui gèrent les clusters et les nœuds du cluster Hadoop qui gèrent les différentes étapes. Pour plus d'informations, consultez la documentation Hadoop.

HDFSest utilisé par le nœud principal et le nœud principal. Il présente l'avantage d'être rapide, mais l'inconvénient d'être un stockage éphémère qui est récupéré lorsque le cluster se termine. Il est particulièrement adapté à la mise en cache des résultats obtenus aux étapes de flux de travail intermédiaires.

EMRFS s3://

EMRFSest une implémentation du système de fichiers Hadoop utilisé pour lire et écrire des fichiers ordinaires EMR directement depuis Amazon vers Amazon S3. EMRFSpermet de stocker des données persistantes dans Amazon S3 pour les utiliser avec Hadoop, tout en fournissant des fonctionnalités telles que le chiffrement côté serveur Amazon S3, la cohérence et read-after-write la cohérence des listes.

Note

Amazon EMR utilisait auparavant les systèmes s3n de s3a fichiers et. Bien que les deux fonctionnent toujours, nous vous recommandons d'utiliser le s3 URI schéma pour optimiser les performances, la sécurité et la fiabilité.

système de fichiers local

Le système de fichiers local fait référence à un disque connecté localement. Lorsqu'un cluster Hadoop est créé, chaque nœud est créé à partir d'une EC2 instance fournie avec un bloc préconfiguré de stockage sur disque préconnecté appelé magasin d'instance. Les données relatives aux volumes de stockage de l'instance ne sont conservées que pendant la durée de vie de l'EC2instance. Les volumes de stockage d'instance conviennent parfaitement pour le stockage de données temporaires qui changent en permanence, telles que les tampons, les caches, les données de travail et d'autres contenus temporaires. Pour plus d'informations, consultez Amazon EC2 instance Storage.

Le système de fichiers local est utilisé parHDFS, mais Python s'exécute également à partir du système de fichiers local et vous pouvez choisir de stocker des fichiers d'application supplémentaires sur des volumes de stockage d'instance.

(Hérité) Système de fichiers à blocs Amazon S3 s3bfs://

Le système de fichiers à blocs Amazon S3 est un système de stockage de fichiers hérité. Nous déconseillons vivement l'utilisation de ce système.

Important

Nous vous recommandons de ne pas utiliser ce système de fichiers, car il peut déclencher une condition de concurrence susceptible d'entraîner l'échec de votre cluster. Toutefois, il peut être requis par des applications héritées.

Accès aux systèmes de fichiers

Vous spécifiez le système de fichiers à utiliser à l'aide du préfixe de l'identifiant de ressource uniforme (URI) utilisé pour accéder aux données. Les procédures suivantes montrent comment faire référence à plusieurs types de système de fichiers.

Pour accéder à un local HDFS
  • Spécifiez le hdfs:/// préfixe dans le. URI Amazon EMR résout les chemins qui ne spécifient pas de préfixe dans le URI répertoire localHDFS. Par exemple, les deux solutions suivantes URIs seront résolues au même emplacement dansHDFS.

    hdfs:///path-to-data /path-to-data
Pour accéder à une télécommande HDFS
  • Incluez l'adresse IP du nœud maître dans leURI, comme indiqué dans les exemples suivants.

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
Pour accéder à Amazon S3
  • Utilisez le préfixe s3://.

    s3://bucket-name/path-to-file-in-bucket
Pour accéder au système de fichiers à blocs Amazon S3
  • Utilisez-le uniquement pour les applications héritées qui requièrent le système de fichiers à blocs Amazon S3. Pour accéder à des données ou les stocker avec ce système de fichiers, utilisez le s3bfs:// préfixe dans leURI.

    Le système de fichiers à blocs Amazon S3 est un système de fichiers hérité qui était utilisé pour prendre en charge les chargements vers Amazon S3 dont la taille dépassait 5 Go. Grâce à la fonctionnalité de téléchargement partitionné EMR fournie par Amazon via AWS JavaSDK, vous pouvez télécharger des fichiers d'une taille maximale de 5 To vers le système de fichiers natif Amazon S3, et le système de fichiers par blocs Amazon S3 est obsolète.

    Avertissement

    Étant donné que cet ancien système de fichiers peut créer des conditions de concurrence susceptibles de corrompre le système de fichiers, vous devez éviter ce format et l'utiliser à la EMRFS place.

    s3bfs://bucket-name/path-to-file-in-bucket