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.
Système de fichiers EMR (EMRFS)
Le système de fichiers EMR (EMRFS) est une mise en œuvre de HDFS que tous les clusters Amazon EMR utilisent pour la lecture et l'écriture des fichiers réguliers depuis Amazon EMR directement dans Amazon S3. EMRFS permet de stocker des données persistantes dans Amazon S3 en vue de les utiliser avec Hadoop, tout en fournissant des fonctionnalités telles que le chiffrement des données.
Le chiffrement des données vous permet de chiffrer les objets qu'EMRFS écrit dans Amazon S3 et permet à EMRFS de travailler avec les données chiffrées dans Amazon S3. Si vous utilisez la version 4.8.0 ou ultérieure d'Amazon EMR, vous pouvez utiliser les configurations de sécurité pour configurer le chiffrement des objets EMRFS dans Amazon S3, ainsi que d'autres paramètres de chiffrement. Pour plus d'informations, consultez Options de chiffrement. Si vous utilisez une version précédente version de Amazon EMR, vous pouvez configurer manuellement les paramètres de chiffrement. Pour de plus amples informations, veuillez consulter Spécification du chiffrement Amazon S3 en utilisant les propriétés EMRFS.
Amazon S3 offre une forte cohérence entre lecture et écriture pour toutes les opérations GET, PUT et LIST dans l'ensemble Régions AWS. Cela signifie que ce que vous écrivez à l'aide d'EMRFS correspond à ce que vous allez lire sur Amazon S3, sans aucun impact sur les performances. Pour plus d’informations, consultez Modèle de cohérence de données Amazon S3.
Lorsque vous utilisez les versions 5.10.0 ou ultérieures d'Amazon EMR, vous pouvez utiliser différents rôles IAM pour les demandes EMRFS à Amazon S3 en fonction des utilisateurs du cluster, des groupes ou de l'emplacement des données EMRFS dans Amazon S3. Pour plus d'informations, consultez Configuration de rôles IAM pour les demandes EMRFS à Amazon S3.
Avertissement
Avant d'activer l'exécution spéculative pour les clusters Amazon EMR exécutant des tâches Apache Spark, veuillez consulter les informations suivantes.
EMRFS inclut le committer optimisé pour EMRFS S3, une OutputCommitter implémentation optimisée pour écrire des fichiers sur Amazon S3 lors de l'utilisation d'EMRFS. Si vous activez la fonctionnalité d'exécution spéculative d'Apache Spark avec des applications qui écrivent des données sur Amazon S3 et n'utilisent pas le committer optimisé pour EMRFS S3, vous pouvez rencontrer les problèmes d'exactitude des données décrits dans le SPARK-10063
L'écriture directe EMRFS est généralement utilisée lorsque le validateur optimisé pour EMRFS S3 n'est pas pris en charge, par exemple lors de l'écriture de ce qui suit :
Un format de sortie autre que Parquet, tel que ORC ou texte.
Fichiers Hadoop à l'aide de l'API Spark RDD.
Parquet avec Hive. SerDe Consultez Conversion de la table Hive Metastore Parquet
.
L'écriture directe EMRFS n'est pas utilisée dans les scénarios suivants :
Lorsque le validateur EMRFS optimisé pour S3 est activé. Consultez Exigences du valideur EMRFS optimisé pour S3.
Lors de l'écriture de partitions dynamiques partitionOverwriteMode définies sur dynamique.
Lorsque vous écrivez sur des emplacements de partition personnalisés, tels que des emplacements non conformes à la convention d'emplacement de partition par défaut de Hive.
Lorsque vous utilisez des systèmes de fichiers autres qu'EMRFS, tels que l'écriture sur HDFS ou l'utilisation du système de fichiers S3A.
Pour déterminer si votre application utilise l'écriture directe dans Amazon EMR 5.14.0 ou version ultérieure, activez la journalisation Spark INFO. Si une ligne de journal contenant le texte « Direct Write : ENABLED » est présente dans les journaux du pilote Spark ou dans les journaux des conteneurs de l'exécuteur Spark, cela signifie que votre application Spark a écrit en écriture directe.
Par défaut, l'exécution spéculative est activée OFF
sur Amazon EMRclusters. Nous vous recommandons vivement de ne pas activer l'exécution spéculative si l'une ou l'autre de ces conditions est remplie :
Vous écrivez des données sur Amazon S3.
Les données sont écrites dans un format autre qu'Apache Parquet ou dans le format Apache Parquet sans utiliser le validateur optimisé pour EMRFS S3.
Si vous activez l'exécution spéculative de Spark et que vous écrivez des données sur Amazon S3 à l'aide de l'écriture directe EMRFS, vous risquez de subir des pertes de données intermittentes. Lorsque vous écrivez des données dans HDFS ou que vous écrivez des données dans Parquet à l'aide du validateur optimisé EMRFS S3, Amazon EMR n'utilise pas l'écriture directe et ce problème ne se produit pas.
Si vous devez écrire des données dans des formats utilisant l'écriture directe EMRFS depuis Spark vers Amazon S3 et utiliser l'exécution spéculative, nous vous recommandons d'écrire sur HDFS, puis de transférer les fichiers de sortie vers Amazon S3 à l'aide de S3DistCp.