我是Hadoop新手,尝试在Hadoop集群上运行我的工作时遇到以下异常:
org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory for jobcache/job_201409031055_3865/jars/job.jar
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:376)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:146)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:127)
at org.apache.hadoop.mapred.JobLocalizer.localizeJobJarFile(JobLocalizer.java:268)
at org.apache.hadoop.mapred.JobLocalizer.localizeJobFiles(JobLocalizer.java:380)
at org.apache.hadoop.mapred.JobLocalizer.localizeJobFiles(JobLocalizer.java:370)
at org.apache.hadoop.mapred.DefaultTaskController.initializeJob(DefaultTaskController.java:232)
at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1381)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java
谁能告诉我问题出在哪里以及如何解决?
最佳答案
MR将 map 还原作业期间的中间数据存储在本地目录中。它将在mapred-site.xml中的mapreduce.cluster.local.dir
中。
请根据您输入的文件大小,确认目录中是否有足够的空间。另外,您可以尝试压缩中间输出文件以最大程度地减少空间消耗。
关于hadoop - 找不到作业缓存的任何有效本地目录EXCEPTION Hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30372867/