Nutch提取程序正在中止,有N个挂起的线程

Nutch提取程序正在中止,有N个挂起的线程,nutch,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,spi

我使用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个挂起线程


如何解决此问题?

有些请求似乎挂起,尽管有各种意图。当获取程序线程长时间不执行任何活动时,就会发生这种情况。参见第932-936行

此处交易步骤:

  • 检查在将此消息登录到日志文件之前已爬网的URL。(请参阅日志中的获取…语句)
  • 加载这些URL需要很多时间吗?(尝试
    wget
    来自同一台机器的那些URL
  • 这些页面的内容大吗?(检查大小)
  • 超时值通常为600秒。增加hadoop配置的mapred-site.xml中的配置值。(对于本地模式,只需将nutch-site.xml中的值与较大的值相加)
  • 您是否正在执行任何需要花费大量时间的操作(比如解析)?应用程序挂在什么地方了吗
  • 我想如果你能解决这些问题,你就能把它修好


    另请阅读和。

    您是否能够解决此问题?我正面临一个类似的问题,我想知道是什么为您解决了这个问题。您好,Tejas-从上面的第4步开始,当您说在mapred-site.xml中添加mapred.task.timeout时,对于本地模式-在nutch-site.xml中添加值。因此,您的意思是,当在nutch 2.2.1的伪分发模式下运行HBase时,nutch-site.xml中的所有值都应该复制到hadoop的mapred-site.xml中?并非全部。如果您在伪分布式模式下运行hadoop,请使用更高的值将“mapred.task.timeout”添加到mapred-site.xml。这就是你需要做的。老实说,这是解决这个问题的最后手段。增加超时时间似乎很容易获得快速修复,但对于严肃的生产部署,必须考虑1-3点。Tejas-我检查了#1-3,在我挂起N个线程之前的url是非常简单的url,我知道,它只占了部分的一小部分。我已经设置了超时值作为最后的手段。我不能再进行第四次迭代了。我在nutch 2.2.1中使用bin/crawl脚本。@archer您只需要使用有问题的url运行crawl,并从日志中找出fetch中负责挂起任务的步骤。添加额外的日志语句会更容易。Tejas-Nutch日志现在已在解析阶段停止。在终端上,它说,“用8个挂起的线程中止”,当我检查Hbase日志以查看它是否仍然连接时,这就是我所拥有的-