0

ローカル モードで Ubuntu のバックグラウンド プロセスとして Nutch クロールを実行すると、Fetcher がハング スレッドで中断します。メッセージは次のようなものです。

WARN fetcher.Fetcher - 「X」ハング スレッドで中止します。

セッションからログオフし、クローラーをサーバー上で引き続き実行したいので、nohup と & を使用してスクリプトを開始します。そうしないと、クロールが特定の深さで終了し、crawldb が更新されているときに、SSH セッションがタイムアウトになります。「キープアライブ」メッセージを設定しようとしましたが、あまり助けがありませんでした。コマンドは次のようなものです。

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

誰もこれを経験したことがありますか?nohup または & を使用した場合にのみ発生するようです。

4

1 に答える 1

1

ハング スレッド メッセージは、すべての意図にもかかわらず一部のリクエストがハングしているように見える場合に、Fetcher クラスによってログに記録されます。F etcher.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 に答える