[
https://issues.apache.org/jira/browse/HADOOP-10634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14014736#comment-14014736
]
Steve Loughran commented on HADOOP-10634:
-----------------------------------------
..OK, I'm confused now. The patch does play wit
RemoteIterator<LocatedFileStatus> listFiles(}} -but the version that takes Path
+ PathFilter, not (Path, recursive).
It seems like we need a single method listFile(Path, PathFilter, recursive)
which should meet your goals -but without adding a new public operation to
return an array of all FileStatus[] instances in a directory tree -which is the
thing that 's too expensive.
Would that work?
> Add recursive list apis to FileSystem to give implementations an opportunity
> for optimization
> ---------------------------------------------------------------------------------------------
>
> Key: HADOOP-10634
> URL: https://issues.apache.org/jira/browse/HADOOP-10634
> Project: Hadoop Common
> Issue Type: Improvement
> Components: fs/s3
> Affects Versions: 2.4.0
> Reporter: Sumit Kumar
> Attachments: HADOOP-10634.patch
>
>
> Currently different code flows in hadoop use recursive listing to discover
> files/folders in a given path. For example in FileInputFormat (both mapreduce
> and mapred implementations) this is done while calculating splits. They
> however do this by doing listing level by level. That means to discover files
> in /foo/bar means they do listing at /foo/bar first to get the immediate
> children, then make the same call on all immediate children for /foo/bar to
> discover their immediate children and so on. This doesn't scale well for fs
> implementations like s3 because every listStatus call ends up being a
> webservice call to s3. In cases where large number of files are considered
> for input, this makes getSplits() call slow.
> This patch adds a new set of recursive list apis that give opportunity to the
> s3 fs implementation to optimize. The behavior remains the same for other
> implementations (that is a default implementation is provided for other fs so
> they don't have to implement anything new). However for s3 it provides a
> simple change (as shown in the patch) to improve listing performance.
--
This message was sent by Atlassian JIRA
(v6.2#6252)