The issue described here can be probably solved by specifying the appropriate number of map tasks and specifying custom input splits.

However I'd suggest a tool to be implemented that supports the following operation on DFS files:
Concatenate several DFS files into a single one.
An option would specify whether it is done
-- destructively (the blocks of the files do not change, but just re-linked into a single file), or -- non-destructively (copy the data into a new file, with a different block size). Applied to a single file, this operation can be used to change the block size. It can applied to a whole directory to turn the output of a map-reduce job into a single file without running another job

The latter is quite common operation. I usually do DFS -getmerge followed by DFS -put. Quite ugly.

On Mar 1, 2007, at 10:22 AM, Johan Oskarson (JIRA) wrote:

Add more then one input file per map?
-------------------------------------

                 Key: HADOOP-1054
                 URL: https://issues.apache.org/jira/browse/HADOOP-1054
             Project: Hadoop
          Issue Type: Improvement
          Components: mapred
    Affects Versions: 0.11.2
            Reporter: Johan Oskarson
            Priority: Trivial


I've got a problem with mapreduce overhead when it comes to small input files.

Roughly 100 mb comes in to the dfs every few hours. Then afterwards data related to that batch might be added on for another few weeks. The problem is that this data is roughly 4-5 kbytes per file. So for every reasonably big file we might have 4-5 small ones.

As far as I understand it each small file will get assigned a task of it's own. This causes performance issues since the overhead of such small
files is pretty big.

Would it be possible to have hadoop assign multiple files to a map task up until a configurable limit?

--
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