Hi, all:
I'm running a 0.6.39 Indexing Service Hadoop task and it is failing with:
org.apache.hadoop.util.DiskChecker$DiskErrorException:
Could not find any valid local directory for output/spill0.out
/tmp is full. The partition isn't big enough to handle the output even if I clean it out. I have set java.io.tmpdir to a different directory for all my Druid processes. I have also tried (on the Middle Manager)
-Dhadoop.mapred.child.java.opts=-Djava.io.tmpdir=/data1/tmp/hadoop
and
-Dhadoop.mapred.child.java.opts=-Dhadoop.tmp.dir=/data1/tmp/hadoop
and /tmp still fills up. I'm running as user "ec2-user", so it appears that whatever process is creating these tmp files is doing so by appending the user id to the string "hadoop-", as this is a sample of the contents of /tmp:
[ec2-user@ip-10-9-177-94 tmp]$ du *
4 druid
4 druid-indexing/am_extract_H00
4 druid-indexing/am_extract
4 druid-indexing/am_extract_istest_100000
16 druid-indexing
35648 hadoop-ec2-user/mapred/local/taskTracker/ec2-user/jobcache/job_local_0001/attempt_local_0001_m_000006_0/output
35652 hadoop-ec2-user/mapred/local/taskTracker/ec2-user/jobcache/job_local_0001/attempt_local_0001_m_000006_0
35648 hadoop-ec2-user/mapred/local/taskTracker/ec2-user/jobcache/job_local_0001/attempt_local_0001_m_000014_0/output
35652 hadoop-ec2-user/mapred/local/taskTracker/ec2-user/jobcache/job_local_0001/attempt_local_0001_m_000014_0
35648 hadoop-ec2-user/mapred/local/taskTracker/ec2-user/jobcache/job_local_0001/attempt_local_0001_m_000000_0/output
and so on. 99.999... % of the disk taken up in /tmp is in /tmp/hadoop-ec2-user.
I don't believe workingPath is an option here, as this is the Indexing Service and the docs say that workingPath is one of the properties that must not be set in the Hadoop config file, as it is managed internally by the Indexing Service. Perhaps this means there's a property that can be set on either overlord or middle manager -- does anyone know?
Thanks -- Wayne