Dan Hecht created HADOOP-11584:
----------------------------------

             Summary: s3a file block size set to 0
                 Key: HADOOP-11584
                 URL: https://issues.apache.org/jira/browse/HADOOP-11584
             Project: Hadoop Common
          Issue Type: Bug
          Components: fs/s3
    Affects Versions: 2.6.0
            Reporter: Dan Hecht


The consequence is that mapreduce probably is not splitting s3a files in the 
expected way. This is similar to HADOOP-5861 (which was for s3n, though s3n was 
passing 5G rather than 0 for block size).

FileInputFormat.getSplits() relies on the FileStatus block size being set:
{code}
        if (isSplitable(job, path)) {
          long blockSize = file.getBlockSize();
          long splitSize = computeSplitSize(blockSize, minSize, maxSize);
{code}

However, S3AFileSystem does not set the FileStatus block size field. From 
S3AFileStatus.java:
{code}
  // Files
  public S3AFileStatus(long length, long modification_time, Path path) {
    super(length, false, 1, 0, modification_time, path);
    isEmptyDirectory = false;
  }
{code}

I think it should use S3AFileSystem.getDefaultBlockSize() for each file's block 
size (where it's currently passing 0).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to