[ 
https://issues.apache.org/jira/browse/HADOOP-1824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557061#action_12557061
 ] 

Doug Cutting commented on HADOOP-1824:
--------------------------------------

> 2. Override the getSplits() method to read each file's InputStream

I think getSplits() should construct a split for each element of 
java.util.zip.ZipFile#entries().

> 3. Create FileSplits [ ... ]

We should probably extend FileSplit or InputSplit specifically for zip files.  
The fields needed per split are the archive file's path and the path of the 
file within the archive.  I don't think there's much point in supporting splits 
smaller than a file within the zip archive, so start and end offsets are not 
required here.

> 4. Implement class ZipRecordReader to read each zip entry in its split
Using LineRecordReader.

We should be able to use LineRecordReader directly, passing its constructor the 
result of ZipFile#getInputStream().



> want InputFormat for zip files
> ------------------------------
>
>                 Key: HADOOP-1824
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1824
>             Project: Hadoop
>          Issue Type: New Feature
>          Components: mapred
>            Reporter: Doug Cutting
>
> HDFS is inefficient with large numbers of small files.  Thus one might pack 
> many small files into large, compressed, archives.  But, for efficient 
> map-reduce operation, it is desireable to be able to split inputs into 
> smaller chunks, with one or more small original file per split.  The zip 
> format, unlike tar, permits enumeration of files in the archive without 
> scanning the entire archive.  Thus a zip InputFormat could efficiently permit 
> splitting large archives into splits that contain one or more archived files.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to