0

我是 Nutch (2.2.1) 的新手,并尝试使用最新版本的 Gora (0.5) 在 Cygwin/Windows 7 上运行它,这样我就可以将数据保存到 MongoDB (2.6) 数据存储区。我更改了 Nutch-Site.XML 文件以包含我的 Mongo 属性,但我对这里需要的 gora-mongodb.mapping.XML 属性文件有点困惑。只是想知道我是否需要:

1) 在我在 gora-mongodb.mapping 文件的类名属性中指定的 Nutch/Gora 项目中创建一个 Java 类,还是 Gora 会为我创建这个?文档似乎不是很清楚。

2) 我在我的 apache-nutch-2.2.1\runtime\local\conf 文件夹中创建了一个示例文件,并添加了我的 MongoDB 集合的名称。当我运行 Nutch 时,出现以下错误:

$ ./nutch crawl urls -dir testCrawl -depth 3 -topN 5
cygpath: can't convert empty path
Exception in thread "main" org.apache.gora.util.GoraException: java.lang.IllegalStateException: A collection is not specified
        at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:167)
        at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:135)
        at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:75)
        at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:221)
        at org.apache.nutch.crawl.Crawler.runTool(Crawler.java:68)
        at org.apache.nutch.crawl.Crawler.run(Crawler.java:136)
        at org.apache.nutch.crawl.Crawler.run(Crawler.java:250)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.nutch.crawl.Crawler.main(Crawler.java:257)
Caused by: java.lang.IllegalStateException: A collection is not specified
        at org.apache.gora.mongodb.store.MongoMappingBuilder.build(MongoMappingBuilder.java:77)
        at org.apache.gora.mongodb.store.MongoStore.initialize(MongoStore.java:168)
        at org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:102)
        at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:161)
        ... 8 more

任何有关此文件的帮助或说明将不胜感激。

4

1 回答 1

0

您需要 2 个文件nutch/conf

  1. gora.properties: 你在哪里声明你将使用 mongodb 后端。
  2. gora-mongodb-mapping.xml(注意破折号,而不是您写的点):您在其中创建 Gora 实体中的名称和数据存储区中的字段之间的映射。

您正在使用的版本我真的认为它不准备与 Gora 0.5 一起使用,但试一试。gora-mongodb-mapping.xmlNutch-2.3-SNAPSHOT复制到nutch/conf/

如果它不起作用,请尝试使用 Nutch-2.3-SNAPSHOT 而不是 2.2.1。

于 2014-12-14T00:08:49.647 回答