HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls (Contributed by Ryan Blue)
(cherry picked from commit 96ea3094315bb1e1a5e268e3817c7fdedc3e9462) (cherry picked from commit 2bf5a005fab287689a148c1928f3b04c0a8dcedf) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e88c01fa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e88c01fa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e88c01fa Branch: refs/heads/branch-2.8 Commit: e88c01fa5808afc4176c35cf5cd49eecdbd13d8c Parents: c7be3de Author: Vinayakumar B <vinayakum...@apache.org> Authored: Wed Feb 17 10:13:41 2016 +0530 Committer: Vinayakumar B <vinayakum...@apache.org> Committed: Wed Feb 17 10:15:43 2016 +0530 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/fs/FileSystem.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e88c01fa/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index bd6b08a..5f49c95 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1019,6 +1019,9 @@ Release 2.7.3 - UNRELEASED OPTIMIZATIONS + HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls + (Ryan Blue via vinayakumarb) + BUG FIXES HADOOP-12296. when setnetgrent returns 0 in linux, exception should be http://git-wip-us.apache.org/repos/asf/hadoop/blob/e88c01fa/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java index e0320c0..4eb3ed5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java @@ -1732,8 +1732,10 @@ public abstract class FileSystem extends Configured implements Closeable { throw new NoSuchElementException("No more entry in " + f); } 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() ? - getFileBlockLocations(result.getPath(), 0, result.getLen()) : + getFileBlockLocations(result, 0, result.getLen()) : null; return new LocatedFileStatus(result, locs); }