Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Nutch 2.3.1 checkingpointing不工作_Apache_Hadoop_Web Crawler_Nutch - Fatal编程技术网

Apache Nutch 2.3.1 checkingpointing不工作

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标志

我已经用单节点集群(Hadoop 2.7.x和hbase 1.2.6)配置了ApacheNutch2.3.1。我必须检查它的检查点功能。根据我的信息,恢复在Fetch和parse中可用。我假设在获取(或解析)过程中的任何阶段,我的整个集群都会因为一些问题而停止运行,例如电源故障。我假设当我使用-resume标志重新启动集群和爬虫程序时,它应该只开始获取那些未获取的URL

但我观察到的是(在启用调试的情况下),它开始重新蚀刻所有URL(使用相同的batchID),直到结束,甚至使用resume标志。恢复标志仅在作业(如提取)完全完成时起作用。我已经从它的日志中反复检查了它,并显示了一条消息,如“跳过express.pk;已获取”

我的Interpretation在Nutch中的恢复选项是否不正确


或者集群/配置有问题?

您的解释是正确的。此外,在这种情况下,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强制停止程序,那么之后,它只是简单地说完成了,没有错误。