2012-04-26 5 views
1

ウェブサイトのクロールにNutch-1.4を使用しています。フェッチャーは常にN個のハングスレッドで異常終了します。ログファイル内の エントリである、Nutch FetcherがN吊りスレッドで中断する

INFO fetcher.Fetcher - -activeThreads = 1、spinWaiting = 0、fetchQueues.totalSize = 0
INFO fetcher.Fetcher - -activeThreads = 1、spinWaiting = 0、fetchQueues。合計サイズ= 0
INFO fetcher.Fetcher --activeThreads = 1、spinWaiting = 0、fetchQueues.totalSize = 0
WARN fetcher.Fetcher - ハングしたスレッドを1つ停止します。

この問題を解決するにはどうすればよいですか?

+0

この問題を解決できましたか?私は同様のものに直面しており、あなたのためにこれを修正したものを知りたいと思います。 – chethan

答えて

3

一部のリクエストは、すべての意図にかかわらず、ハングアップするようです。これは、Fetcherスレッドが長い間アクティビティを実行していない場合に発生します。 932-936行のhereを参照してください。

手順ここに対処する:このメッセージがログファイルに記録された直前にクロールされていたもののURL

  1. チェック。 (ログのフェッチを参照してください)。
  2. これらのURLの読み込みに時間がかかりますか? (同じマシンからのそれらのURLをwgetにしようとしてください。)
  3. これらのページの内容は大きいですか? hadoop設定のmapred-site.xmlで設定値mapred.task.timeoutを増やしてください。 (ローカルモードの場合は、nutch-site.xmlの値を大きな値で単に追加してください)
  4. 本当に多くの時間を要する操作(解析)を行っていますか?アプリケーションはどこかにぶら下がっていますか?

私はこれらのことがうまくいくとすれば、それを修正できると思います。

も読んでthisthisです。

+0

こんにちはTejas - 上記の手順4から、mapred-site.xmlにmapred.task.timeoutを追加し、ローカルモードでnutch-site.xmlに値を追加すると述べたとき。つまり、Nutch 2.2.1の擬似配布モードでHBaseを実行すると、nutch-site.xmlのすべての値をhadoopのmapred-site.xmlにコピーする必要がありますか? – sunskin

+0

@archerすべてではありません。 hadoopをpseudo distrbutedモードで実行している場合は、mapred-site.xmlに 'mapred.task.timeout'を高い値で追加します。それはあなたがする必要があることすべて。正直なところ、この問題の最後の手段だ。タイムアウトを増やすことで、迅速な修正が得られるように思えますが、深刻な本番環境では1-3のポイントを考慮する必要があります。 –

+0

Tejas - 私はこれをN個のスレッドに掛けた直前のURLを#1-3でチェックしましたが、非常に簡単なURLです。最後の手段としてタイムアウト値を設定しました。私はさらに4世紀初頭に行くことができません。私はnutch 2.2.1でbin/crawlスクリプトを使用しています。 – sunskin

関連する問題