2016-12-23 1 views
0

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.

+0

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

Répondre

0

Il y a une limite de 5 Go sur la taille du fichier téléchargé de EMR vers S3. Vous pouvez compresser vos fichiers avant de les télécharger ou les diviser en plusieurs parties.