我是Nutch(2.2.1)的新手并试图在Cygwin / Windows 7上使用最新版本的Gora(0.5)运行它,因此我可以将数据保存到MongoDB(2.6)数据存储区。我更改了Nutch-Site.XML文件以包含我的Mongo属性,但我对gora-mongodb.mapping.XML属性文件here有点困惑。只是想知道我需要:
1)在Nutch / Gora项目中创建一个Java类,我在gora-mongodb.mapping文件中的class-name属性中指定,或者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
对此文件的任何帮助或澄清将不胜感激。
答案 0 :(得分:0)
nutch/conf
中需要2个文件:
gora.properties
:您宣布将使用mongodb后端。gora-mongodb-mapping.xml
(注意破折号,而不是你写的点):在Gora实体中的名称和数据存储区中的字段之间创建映射。您正在使用的版本我真的认为它不准备与Gora 0.5一起使用,但请试一试。将gora-mongodb-mapping.xml
从Nutch-2.3-SNAPSHOT复制到nutch/conf/
如果不起作用,请尝试使用Nutch-2.3-SNAPSHOT而不是2.2.1。