When mapred.local.dir is used to specify multiple temp dir. areas, space allocation limited by smallest area because the temp dir. selection algorithm is "round robin starting from a randomish point". When round robin is used with approximately constant sized chunks, the smallest area runs out of space first, and this is a fatal error.
Workaround: only list local fs dirs in mapred.local.dir with similarly-sized available areas.
I wrote a patch to JobConf (currenly being tested) which uses df to check available space (once a minute or less often) and then uses an efficient roulette selection to do allocation weighted by magnitude of available space.