0

当我以本地模式在 Ubuntu 上将 Nutch 抓取作为后台进程运行时,Fetcher 因挂起线程而中止。消息类似于:

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

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

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

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

4

1 回答 1

1

当某些请求似乎挂起时,Fetcher 类会记录挂起的线程消息,尽管有所有意图。在Fetcher.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,并得出结论,对于大文件,当服务器花费更多时间进行数据传输时也会出现此问题。

于 2012-08-30T13:37:01.363 回答