HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls (Contributed by Ryan Blue)

(cherry picked from commit 96ea309431)
This commit is contained in:
Vinayakumar B 2016-02-17 10:13:41 +05:30
parent 6874a142d8
commit 2bf5a005fa
2 changed files with 6 additions and 1 deletions

View File

@ -1081,6 +1081,9 @@ Release 2.7.3 - UNRELEASED
OPTIMIZATIONS OPTIMIZATIONS
HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls
(Ryan Blue via vinayakumarb)
BUG FIXES BUG FIXES
HADOOP-12296. when setnetgrent returns 0 in linux, exception should be HADOOP-12296. when setnetgrent returns 0 in linux, exception should be

View File

@ -1739,8 +1739,10 @@ public LocatedFileStatus next() throws IOException {
throw new NoSuchElementException("No more entry in " + f); throw new NoSuchElementException("No more entry in " + f);
} }
FileStatus result = stats[i++]; FileStatus result = stats[i++];
// for files, use getBlockLocations(FileStatus, int, int) to avoid
// calling getFileStatus(Path) to load the FileStatus again
BlockLocation[] locs = result.isFile() ? BlockLocation[] locs = result.isFile() ?
getFileBlockLocations(result.getPath(), 0, result.getLen()) : getFileBlockLocations(result, 0, result.getLen()) :
null; null;
return new LocatedFileStatus(result, locs); return new LocatedFileStatus(result, locs);
} }