Nutch Crawler错误:Hadoop路径权限

时间:2015-05-04 18:31:18

标签: java apache mongodb hadoop web-crawler

我试图用MongoDB(v2.6)运行Apache Nutch(v2.3)。我正在关注this教程,以帮助我完成任务。我已经创建了种子列表,我的gora.properties和nutch-site.xml设置得很好。但是,在运行bin/nutch inject ../urls/test/命令时,我不断收到java.io.IOException错误:

$ bin/nutch inject ./../../urls/test/
InjectorJob: starting at 2015-05-04 13:53:29
InjectorJob: Injecting urlDir: ../../urls/test
InjectorJob: Using class org.apache.gora.mongodb.store.MongoStore as the Gora storage class.
InjectorJob: java.io.IOException: Failed to set permissions of path: \tmp\hadoop-TColletti\mapred\staging\TColletti1801159571\.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:691)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:664)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:514)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:349)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:193)
        at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:126)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:942)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Unknown Source)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:550)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580)
        at org.apache.nutch.util.NutchJob.waitForCompletion(NutchJob.java:50)
        at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:231)
        at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252)
        at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)

我在某些地方读过这可能是因为没有正确版本的MongoDb或者Gora是错误的。对于hadoop的临时目录的权限似乎有问题(我现在没有使用)。我查看了this S / O文章,但在我的2.3版Nutch中找不到 core-site.xml 文件。

有人可以帮助我最终运行此命令吗?

1 个答案:

答案 0 :(得分:0)

我不确定这是否是官方答案,但它对我有用。我找到了另一个S / O帖here。一般问题是一样的。其他地方一直提到修改我没有的core-site.xml。但是在其中一个答案中,它提到了一个补丁,可以下载并将需要添加的行连接到我的runtime / local / conf目录中的nutch-site.xml文件中。试了一下,它解决了我的问题。似乎补丁只是忽略了错误并绕过它们。可能有一个更好的解决方案,但现在,它的工作。