在Linux上作为后台进程运行时,Nutch抓取失败

时间:2012-08-29 15:18:46

标签: linux ubuntu ssh nutch

当我在本地模式下在Ubuntu上运行Nutch爬行作为后台进程时,Fetcher将使用挂起的线程中止。消息类似于:

WARN fetcher.Fetcher - 用“X”挂起的线程中止。

我使用nohup和&开始编写脚本因为我想从会话中注销并让爬虫仍在服务器上运行。否则,当爬网在某个深度完成并且正在更新crawldb时,SSH会话超时。我试过配置“保持活跃”的消息没有太多帮助。该命令类似于:

nohup ./bin/nutch crawl ....... &

以前有人经历过这个吗?它似乎只有在我使用nohup或&时才会发生。

1 个答案:

答案 0 :(得分:1)

当一些请求似乎挂起时,Fetcher类会记录挂起的线程消息,尽管有各种意图。 在F etcher.java,第926-930行::

  if ((System.currentTimeMillis() - lastRequestStart.get()) > timeout) {
    if (LOG.isWarnEnabled()) {
      LOG.warn("Aborting with "+activeThreads+" hung threads.");
    }
    return;
  }

请求的超时由mapred.task.timeout定义,默认值为10分钟。你可能会增加它..不确定它是否是100%干净的修复。

当我观察到这种现象时,我在代码中添加了记录器以查找请求挂起超过10分钟的URL,并得出结论,对于大文件,当服务器花费更多时间进行数据传输时也会发现此问题