Nutch Fetcher用N个悬挂线程中止

时间:2012-04-26 10:16:29

标签: nutch

我正在使用Nutch-1.4来抓取网站。我在爬行中面临的问题是抓取器总是以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
  警告fetcher.Fetcher - 用1个挂起的线程中止。

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

尽管有各种意图,但有些请求似乎仍然悬而未决。当Fetcher线程长时间不执行任何活动时会发生这种情况。见第932-936行here

此处处理的步骤:

  1. 检查在日志文件中记录此消息之前已抓取的网址。 (请参阅日志中的获取...语句)。
  2. 这些网址是否需要花费大量时间才能加载? (尝试wget来自同一台机器的那些网址。
  3. 这些网页的内容是否很大? (检查它们的大小))
  4. 超时值通常为600秒。增加hadoop配置的mapred-site.xml中配置mapred.task.timeout的值。 (对于本地模式,只需在nutch-site.xml中添加值更大的值)
  5. 您是否正在执行任何花费大量时间的操作(比如解析)?应用程序是否悬挂在某处?
  6. 我认为如果你使用这些东西,你可以解决它。

    还请阅读thisthis