[ https://issues.apache.org/jira/browse/HADOOP-10634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sumit Kumar updated HADOOP-10634: --------------------------------- Attachment: HADOOP-10634.patch > 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 > Reporter: Sumit Kumar > Fix For: 2.4.0 > > 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)