5

我们的 Hadoop 集群中有一个奇怪的问题。我们注意到我们的一些工作因找不到文件异常而失败[见下文]。基本上,当任务仍在主机上运行时,“attempt_*”目录中的文件和目录本身都会被删除。查看一些 hadoop 文档,我发现作业目录在获得 KillJobAction 时被清除,但是我不确定为什么在作业仍在运行时它会被清除。

我的问题是在作业运行时可能会删除它?关于如何调试它的任何想法或指示都会有所帮助。

谢谢!

java.io.FileNotFoundException: <dir>/hadoop/mapred/local_data/taskTracker/<user>/jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0/output/spill29.out (Permission denied)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at org.apache.hadoop.fs.RawLocalFileSystem$TrackingFileInputStream.<init>(RawLocalFileSystem.java:71)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileInputStream.<init>(RawLocalFileSystem.java:107)
    at org.apache.hadoop.fs.RawLocalFileSystem.open(RawLocalFileSystem.java:177)
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:400)
    at org.apache.hadoop.mapred.Merger$Segment.init(Merger.java:205)
    at org.apache.hadoop.mapred.Merger$Segment.access$100(Merger.java:165)
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:418)
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:381)
    at org.apache.hadoop.mapred.Merger.merge(Merger.java:77)
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.mergeParts(MapTask.java:1692)
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1322)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:698)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:765)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
    at org.apache.hadoop.mapred.Child.main(Child.java:253)
4

1 回答 1

0

我遇到了类似的错误,发现这个 Permission 错误是由于 hadoop 程序无法创建或访问文件引起的。

文件是在 hdfs 内还是在任何本地文件系统上创建的。如果它们在本地文件系统上,则尝试设置该文件夹的权限,如果它们在 hdfs 文件夹上,则尝试设置该文件夹的权限。

如果你在 ubuntu 上运行它,那么

尝试运行

chmod -R a=rwx //hadoop/mapred/local_data/taskTracker//jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0/output/

于 2013-04-17T04:19:38.770 回答