我是Nutch的新手(2.2.1),我尝试用最新版本的Gora (0.5)在Cygwin/Windows 7上运行它,这样我就可以将数据持久化到MongoDB (2.6)数据存储。我更改了Nutch-Site.XML文件以包含我的Mongo属性,但我对所需的gora-mongodb.mapping.XML属性文件这里感到有点困惑。只是想知道我是否需要:
1)在Nutch/Gora项目中创建一个Java类,我在Gora -monGodb.map文件中的类名属性中指定了这个类,或者Gora会为我创建这个类吗?文档看起来不太清楚。
2)我在Apache-Nutch-2.2.1\运行时\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如对此文件有任何帮助或澄清,将不胜感激。
发布于 2014-12-14 00:08:49
您需要nutch/conf中的两个文件
gora.properties:声明要使用mongodb后端的位置。gora-mongodb-mapping.xml (请注意破折号,而不是您所写的点):在这里,您可以在Gora实体中的名称和数据存储中的字段之间创建一个映射。你正在使用的版本,我真的认为它没有准备好用Gora 0.5,但给它一个尝试。将gora-mongodb-mapping.xml从Nutch-2.3-SNAPSHOT复制到nutch/conf/
如果它不能工作,尝试使用Nutch-2.3-快照而不是2.2.1。
https://stackoverflow.com/questions/27460399
复制相似问题