Émetteur S3A MagicV2 - 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.

Émetteur S3A MagicV2

Avec la version EMR-6.15.0, Amazon EMR introduit un nouveau type de transmetteur S3A connu sous le nom de transmetteur MagicV2. Pour obtenir des informations complètes sur cette fonctionnalité, veuillez consulter les sections de documentation correspondantes.

Le MagicV2 Committer représente une implémentation améliorée de l'open source MagicCommitter, spécialement conçue pour optimiser l'écriture de fichiers sur Amazon S3 via le système de fichiers S3A. Comme son prédécesseur, il exploite les fonctionnalités de téléchargement partitionné d'Amazon S3 pour éliminer les opérations traditionnelles de liste et de renommage généralement associées aux phases de validation des tâches et des tâches.

Par rapport à l'original MagicCommitter, le validateur MagicV2 affiche des performances supérieures en écrivant des fichiers sur l'emplacement de sortie de la tâche pendant la phase de validation de la tâche, plutôt que pendant la phase de validation de la tâche. Cette approche permet l'écriture de fichiers distribués et élimine le besoin de stocker temporairement les métadonnées de validation sur Amazon S3, ce qui améliore la rentabilité. En outre, le validateur MagicV2 offre une flexibilité accrue en permettant le remplacement du chemin de fichier sur plusieurs threads pendant le processus de validation.

Activer le transmetteur MagicV2

Pour activer le validateur MagicV2, transmettez la configuration suivante dans la configuration de votre tâche ou utilisez la configuration du site principal pour définir la propriété. Pour plus d'informations, consultez Configuration des applications.

mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true

Pour les charges de travail qui nécessitent le remplacement du répertoire existant avant de valider ou d'écrire les nouveaux fichiers, la configuration supplémentaire suivante est requise, en plus de la configuration mentionnée précédemment.

fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=thread size

La valeur par défaut de la threads configuration est20. Toutefois, ce paramètre doit être ajusté lorsqu'un grand nombre de répertoires doivent être remplacés pour de meilleures performances. Ceci n'est disponible que dans EMR-7.2.0 et versions ultérieures.

Considérations

  • Si la machine virtuelle Java (JVM) tombe en panne ou est interrompue alors que des tâches sont en cours d'exécution et que des données sont écrites sur Amazon S3, les chargements partitionnés incomplets sont plus susceptibles d'être laissés pour compte. C'est pourquoi, lorsque vous utilisez le validateur MagicV2, veillez à suivre les meilleures pratiques en matière de gestion des téléchargements partitionnés ayant échoué. Pour plus d'informations, consultez la section Bonnes pratiques d'utilisation des compartiments Amazon S3 du Guide de gestion Amazon EMR.

  • Si une tâche échoue, tous les fichiers validés par les tâches réussies seront toujours visibles dans le chemin de destination. Dans ce cas, l'utilisateur devra nettoyer manuellement les fichiers validés avant de réexécuter la tâche sur le même chemin de destination.

  • Le validateur MagicV2 consomme une petite quantité de mémoire pour chaque fichier écrit par une tentative de tâche jusqu'à ce que la tâche soit validée ou abandonnée. Dans la plupart des tâches, la quantité de mémoire utilisée est négligeable. Toutefois, dans certains cas, lorsqu'un seul processus exécuteur gère simultanément un grand nombre de tâches, cela peut entraîner une forte pression sur la mémoire et le conteneur ou l'exécuteur risque de manquer de mémoire (OOM). L'augmentation de la mémoire du conteneur ou de l'exécuteur devrait résoudre ce problème.