hadoop-common-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yoram Arnon" <yar...@yahoo-inc.com>
Subject RE: Task type priorities during scheduling ?
Date Tue, 25 Jul 2006 22:45:13 GMT
You're looking for more flexibility - to use those idle reduce slots to get
some useful map tasks executed from the next job. You could alternatively
schedule more map tasks from the current job to get it done faster, and
scale back once reduces start kicking in. That makes more sense than
reserving slots for some future job, or forcing multiplexing of jobs in a
single map-reduce cluster.

So rather than having a hard limit of tasks per type per node, allow nodes
to run additional tasks while the reduces are just fetching data, and once
the data has arrived have the reduces wait for those extra tasks to complete
before starting their processing.

It would add a bit of complexity to task scheduling, but it would speed up
jobs.

If you routinely interleave small jobs with large jobs, you may consider
setting aside a small subset of your cluster as a separate map-reduce
cluster, using a common DFS. Then you'd run your large jobs on the large
cluster and the small jobs on the small cluster, sharing data between them.

Yoram

-----Original Message-----
From: Paul Sutter [mailto:sutter@gmail.com] 
Sent: Tuesday, July 25, 2006 2:55 PM
To: hadoop-user@lucene.apache.org
Subject: Re: Task type priorities during scheduling ?

Perfect. Thanks Yoram.

And here's the situation, help me out if I have this wrong.

Lets say the 20 hour job has 10 hours of mapping to undergo. Thats 10
hours when its first reduce tasks are filling the available reduce
slots doing a little bit of copying, and a whole lot of nothing at
all.

Meanwhile, I would want to run a little 20 minute job, whose reduce
tasks would have to wait 10 hours for the first reducers of the big
job to complete (so too all those resources that are set aside for
reduce tasks, such as the sorter RAM going idle, because the copy
phase certainly doesnt need it).

Do I have that right, as it stands now?

Paul

On 7/25/06, Yoram Arnon <yarnon@yahoo-inc.com> wrote:
> There is, actually, support for multiple jobs. Maps are scheduled
separately
> from reduces, and when the current job can not saturate the cluster then
the
> next job's tasks get scheduled, and the next. I've seen several small jobs
> execute concurrently on my largish clusters.
> Reduces for a given job won't get scheduled before maps of that job are
> scheduled, but that makes perfect sense - they'll have no work to do. Once
> map tasks start getting scheduled though, if there are available reduce
> slots, they'll get assigned reduce tasks.
>
> Yoram
>
> -----Original Message-----
> From: Paul Sutter [mailto:sutter@gmail.com]
> Sent: Tuesday, July 25, 2006 11:01 AM
> To: hadoop-user@lucene.apache.org
> Subject: Re: Task type priorities during scheduling ?
>
> First, It matters in the case of concurrent jobs. If you submit a 20
> minute job while a 20 hour job is running, it would be nice if the
> reducers for the 20 minute job could get a chance to run before the 20
> hour job's mappers have all finished. So even without a throughput
> improvement, you have an important capability (although it may require
> another minor tweak or two to make possible).
>
> Secondarily, we often have stragglers, where one mapper runs slower
> than the others. When this happens, we end up with a largely idle
> cluster for as long as an hour. In cases like these, good support for
> concurrent jobs _would_ improve throughput.
>
> Paul
>
> On 7/25/06, Doug Cutting <cutting@apache.org> wrote:
> > Paul Sutter wrote:
> > > it should be possible to have lots of tasks in the shuffle phase
> > > (mostly, sitting around waiting for mappers to run), but only have
> > > "about" one actual reduce phase running per cpu (or whatever works for
> > > each of our apps) that gets enough memory for a sorter, does
> > > substantial computation, etc.
> >
> > Ah, now I see your point, although I don't see how this would improve
> > overall throughput.  In most cases, the optimal configuration is for the
> > total number of reduce tasks to be roughly the total number of reduces
> > that can run at once.  So there is no queue of waiting reduce tasks to
> > schedule.
> >
> > Doug
> >
> >
>
>
>



Mime
View raw message