我是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
任何人都可以告诉我这个问题是什么以及如何修复它?
答案 0 :(得分:0)
MR映射期间中间数据减少本地目录中的作业。它将位于mapred-site.xml中的mapreduce.cluster.local.dir
中。
请根据输入文件大小确认目录中是否有足够的空间。此外,您可以尝试压缩中间输出文件以最小化空间消耗。
答案 1 :(得分:0)
我遇到了同样的问题。当我检查该节点的磁盘信息时,我发现它大约100%被使用。所以我在该节点中添加了一个新磁盘(相应地更改了hdfs-site.xml dfs.data.dir)。然后重新启动该节点守护进程并解决了我的问题。