Apache Nutch 2.3.1 checkingpointing不工作
我已经用单节点集群(Hadoop 2.7.x和hbase 1.2.6)配置了ApacheNutch2.3.1。我必须检查它的检查点功能。根据我的信息,恢复在Fetch和parse中可用。我假设在获取(或解析)过程中的任何阶段,我的整个集群都会因为一些问题而停止运行,例如电源故障。我假设当我使用-resume标志重新启动集群和爬虫程序时,它应该只开始获取那些未获取的URL 但我观察到的是(在启用调试的情况下),它开始重新蚀刻所有URL(使用相同的batchID),直到结束,甚至使用resume标志。恢复标志仅在作业(如提取)完全完成时起作用。我已经从它的日志中反复检查了它,并显示了一条消息,如“跳过express.pk;已获取” 我的Interpretation在Nutch中的恢复选项是否不正确Apache Nutch 2.3.1 checkingpointing不工作,apache,hadoop,web-crawler,nutch,Apache,Hadoop,Web Crawler,Nutch,我已经用单节点集群(Hadoop 2.7.x和hbase 1.2.6)配置了ApacheNutch2.3.1。我必须检查它的检查点功能。根据我的信息,恢复在Fetch和parse中可用。我假设在获取(或解析)过程中的任何阶段,我的整个集群都会因为一些问题而停止运行,例如电源故障。我假设当我使用-resume标志重新启动集群和爬虫程序时,它应该只开始获取那些未获取的URL 但我观察到的是(在启用调试的情况下),它开始重新蚀刻所有URL(使用相同的batchID),直到结束,甚至使用resume标志
或者集群/配置有问题?您的解释是正确的。此外,在这种情况下,Nutch(日志)的输出也是正确的 如果您在上检查代码,Nutch只会记录跳过该URL的日志,因为它已被获取。由于Nutch分批工作,in需要检查同一
batchId
上的所有URL,但是如果指定resume标志,则(仅在调试时)将记录它跳过某些URL。这主要是为了在出现问题时进行故障排除
发生这种情况时,Nutch没有保存上次处理的URL的记录,它需要从同一批的开头开始,然后从那里开始工作。即使知道最后一个URL也是不够的,因为您还需要该URL在批处理中的位置。在我的情况下,它不会进行下一轮抓取。我必须完全从零开始,你是怎么做到的?只有
fetch
命令或整个爬网周期?运行时/local/bin/crawl URL'crawdb'1.//我使用Mongo DB作为Nutch 2.3.4的数据库,在处理当前批处理(它应该跳过所有已经获取的内容)之后,它应该再次进入爬网周期。在这种情况下,如果只指定一个周期,那么它可能会在处理当前批处理后停止。如果增加循环次数会发生什么?在循环过程中,如果我用CTRL+C强制停止程序,那么之后,它只是简单地说完成了,没有错误。