J'ai un cas d'utilisation où je dois télécharger 1000s de fichiers de 20 Go de EMR à S3.EMR échoue lors du téléchargement de très gros fichier
Bien que le téléchargement de fichiers en utilisant l'API fileSystem.moveFromLocalFile, travail échoue avec l'erreur suivante:
16/12/23 07:25:04 WARN TaskSetManager: Lost task 107.0 in stage 16.0 (TID 94646, ip-172-31-3-153.ec2.internal): java.io.IOException: Error closing multipart upload
at com.amazon.ws.emr.hadoop.fs.s3n.MultipartUploadOutputStream.uploadMultiParts(MultipartUploadOutputStream.java:377)
at com.amazon.ws.emr.hadoop.fs.s3n.MultipartUploadOutputStream.close(MultipartUploadOutputStream.java:394)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74)
at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:61)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:119)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:366)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:356)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:2017)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1985)
at org.apache.hadoop.fs.FileSystem.moveFromLocalFile(FileSystem.java:1972)
at com.amazon.ws.emr.hadoop.fs.EmrFileSystem.moveFromLocalFile(EmrFileSystem.java:419)
Notez que cette erreur se produit fréquemment lorsque le nombre de fichiers 20GB sont de l'ordre de 1000s et moins fréquemment lorsque le nombre de fichiers sont de l'ordre de 100s.
Besoin de conseils sur la façon de procéder pour le déboguer.
Juste pour avoir une image claire, pourquoi ne pouvez-vous pas utiliser aws c3 cp ou peut-être mettre ces fichiers à HDFS et utiliser s3-dist-cp? – Chirag