2016-12-23 7 views
0

ich einen Anwendungsfall, wo ich 1000 von 20GB-Dateien von EMR bis S3 laden.EMR ausfällt, während sehr große Datei zu

Während Dateien mit fileSystem.moveFromLocalFile API Upload fehlschlägt Job mit folgenden Fehlern:

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) 

Beachten Sie, dass diese Fehler häufig auftreten, wenn die Anzahl der 20GB-Dateien in der Größenordnung von 1000s ist und weniger häufig, wenn die Anzahl der Dateien sind in der Größenordnung von 100s.

einige Hinweise benötigen, wie zum Debuggen es zu gehen.

+0

Nur ein klares Bild zu bekommen, warum nicht können Sie aws s3 cp verwenden oder vielleicht diese Dateien HDFS setzen und s3-dist-cp verwenden? – Chirag

Antwort

0

Es gibt eine Grenze von 5 GB auf der Größe der Datei von EMR bis S3 hochgeladen werden. Sie können entweder Ihre Dateien vor dem Hochladen komprimieren oder sie in mehrere Teile aufteilen.