Hi,
It seems the error not happen at the reduce output but the map output. It is likely the local file system of some node running the map task doesn't have enough space for the map output. If there are lots of items sharing the same key, you can use combiner at the map phase before output the intermediate result.


-Gang



----- Original Message ----
From: himanshu chandola <[email protected]>
To: [email protected]
Sent: 2009/12/31  5:10:10
Subject: large reducer output with same key

Hi Everyone,
My reducer output results in most of the data having the same key. The reducer output is close to 16 GB and though my cluster in total has a terabyte of space in hdfs I get errors like the following :

org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:719)
       at org.apache.hadoop.mapred.MapTask.run(MapTask.java:209)
       at
org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2084)
Caused by: org.apache.hadoop.util.DiskChecker$DiskErrorException:
Could not find any valid local directory for
task_200808021906_0002_m_000014_2/spill4.out

After such failures, hadoop tries to start the same reduce job couple times on other nodes before the job fails. From the
exception, it looks to me this is
probably a disk error(some machines have less than 16 gigs free space on hdfs).

So my question was whether hadoop puts values which share the same key as a single block in one node ? Or something else
could be happening here ?

Thanks

H

Reply via email to