2

我正在使用 Nutch-1.4 来抓取网站。我在爬行中面临的问题是 fetcher 总是用 N 个挂起的线程中止。日志文件中的条目是,

INFO fetcher.Fetcher - -activeThreads=1, spinWaiting=0, fetchQueues.totalSize=0
INFO fetcher.Fetcher - -activeThreads=1, spinWaiting=0, fetchQueues.totalSize=0
INFO fetcher.Fetcher - -activeThreads=1, spinWaiting= 0, fetchQueues.totalSize=0
WARN fetcher.Fetcher - 用 1 个挂起的线程中止。

如何解决这个问题?

4

1 回答 1

3

尽管有所有意图,但有些请求似乎挂起。当 Fetcher 线程长时间不执行任何活动时,就会发生这种情况。请参阅此处的第 932-936 行。

在这里处理的步骤:

  1. 检查在此消息记录到日志文件之前抓取了哪些 url。(请参阅日志中的 fetching... 语句)。
  2. 这些网址是否需要大量时间来加载?(尝试wget从同一台机器访问这些 url。
  3. 那些页面的内容大吗?(检查它们的大小))
  4. 超时值通常为 600 秒。在hadoop配置的mapred-site.xml中增加配置mapred.task.timeout的值。(对于本地模式,只需在 nutch-site.xml 中添加较大的值即可)
  5. 您是否正在执行任何需要花费大量时间的操作(例如解析)?应用程序是否挂在某个地方?

我想如果你能解决这些问题,你可以把它修好。

还阅读了这个这个

于 2012-04-29T15:48:39.257 回答