0

私の(Java)mojarra 2.0.2 webappからbin/nutchなしでnutch(1.1)を使用しようとしています... Googleで例を探していますが、これを実現する方法の例はありません:/ ... i例外を取得し、ジョブが失敗します:/ (私はhadoopで何かを引き起こすと思います)...ここに私のコードがあります:

  public void run() は例外をスローします {
      最終文字列[]引数=新しい文字列[] {
            String.format("%s%s%s%s", JSFUtils.getWebAppRoot(), "nutch", File.separator, DIRECTORY_URLS),
            "-dir", String.format("%s%s%s%s", JSFUtils.getWebAppRoot(), "nutch", File.separator, DIRECTORY_CRAWL),
            "-threads", this.preferences.get("threads"),
            "-depth", this.preferences.get("depth"),
            "-topN", this.preferences.get("topN"),
            "-solr", this.preferences.get("solr")
        };
      Crawl.main(引数);
  }

およびロギングの一部:

10/05/17 10:42:54 INFO jvm.JvmMetrics: processName=JobTracker、sessionId= で JVM メトリックを初期化しています
10/05/17 10:42:54 WARN mapred.JobClient: 引数の解析に GenericOptionsParser を使用します。アプリケーションは、同じツールを実装する必要があります。
10/05/17 10:42:54 INFO mapred.FileInputFormat: プロセスへの合計入力パス: 1
10/05/17 10:42:54 情報 mapred.JobClient: 実行中のジョブ: job_local_0001
10/05/17 10:42:54 INFO mapred.FileInputFormat: プロセスへの合計入力パス: 1
10/05/17 10:42:55 INFO mapred.MapTask: numReduceTasks: 1
10/05/17 10:42:55 INFO mapred.MapTask: io.sort.mb = 100
java.io.IOException: ジョブが失敗しました!
        org.apache.hadoop.mapred.JobClient.runJob (JobClient.java:1232) で
        org.apache.nutch.crawl.Injector.inject(Injector.java:211) で
        org.apache.nutch.crawl.Crawl.main (Crawl.java:124) で
        lan.localhost.process.NutchCrawling.run(NutchCrawling.java:108) で
        lan.localhost.main.Index.indexing(Index.java:71) で
        lan.localhost.bean.FeedingBean.actionStart(FeedingBean.java:25) で
        ....

誰かが私を助けたり、Java アプリケーションからクロールする方法を教えてくれませんか? Xms を 256m に、Xmx を 768m に増やしましたが、何も変わりません...

よろしくマルセル

4

3 に答える 3

1

おそらく、nutch 構成ファイルをクラスパスに追加する必要があります。通常、スクリプト bin/nutch を呼び出すときにNUTCH_CONF_DIR環境変数を介して設定されます。

設定が必要な場合がある-Dhadoop.log.dirもあります。

時間をかけて bin/nutch スクリプトを確認し、それらについて詳しく理解してください。

于 2010-05-17T13:19:01.820 に答える
0

提供されたsysoutを使用して診断できない何らかの理由により、注入ジョブが失敗しました。より多くのログが必要になります。

于 2012-04-08T03:43:14.457 に答える
0

新しいプロセスをフォークして、bin/nutch スクリプトを実行できます。

于 2010-06-13T15:09:12.987 に答える