使用Java代码爬行ApacheNutch1.9

使用Java代码爬行ApacheNutch1.9,java,nutch,Java,Nutch,我们开发了一个数据处理管道,该管道使用ApacheNutch1.4在给定一组已配置URL的情况下对web数据进行爬网。管道随后应用一系列mapreduce任务来处理web数据,最后将其索引到Solr中。我们使用预配置的hadoop集群和AmazonEMR 此应用程序是3年前开发的,已近一年未使用。当我们尝试使用最新的EMR 4.x版运行它时,它失败了。我想,ApacheNutch1.4不再受支持,因为它使用的是较旧的hadoop版本1.x。所以我们决定升级到Nutch 1.9。但是,我们发现Nu

我们开发了一个数据处理管道,该管道使用ApacheNutch1.4在给定一组已配置URL的情况下对web数据进行爬网。管道随后应用一系列mapreduce任务来处理web数据,最后将其索引到Solr中。我们使用预配置的hadoop集群和AmazonEMR

此应用程序是3年前开发的,已近一年未使用。当我们尝试使用最新的EMR 4.x版运行它时,它失败了。我想,ApacheNutch1.4不再受支持,因为它使用的是较旧的hadoop版本1.x。所以我们决定升级到Nutch 1.9。但是,我们发现Nutch 1.9不再具有我们在1.4版本中用于从Java代码爬网的爬网类org.apache.Nutch.Crawl.Crawl。检查文档时,我发现建议的方法是使用脚本bin/crawl

然而,据我所知,从java代码调用脚本似乎不是一种很好的方法,因为我们调用的是一个外部进程,它给了我们更少的控制。 那我该怎么做呢?编写我自己的org.apache.nutch.crawl.crawl版本,或者这里缺少其他类


我的要求很简单。我想从Java代码中调用Nutch API 1.9或更高版本。

目前正在为Nutch 1.X开发REST API-


没有像您所说的那样的直接爬网api,但是您可以尝试使用REST端点调用作业,看看它们是否适合您的用例

您可以在这个GitHub存储库中看到它是如何完成的:它演示了如何从Java代码而不是从命令行使用Nutch。