0
enter code here

npun@nipun:~$ nutch crawl urls -dir crawl -depth 2 -topN 10
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/nutch/crawl/Crawl
Caused by: java.lang.ClassNotFoundException: org.apache.nutch.crawl.Crawl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.nutch.crawl.Crawl.  Program will exit.

しかし、ターミナルからnutchを実行すると表示されます

使用法: nutch [-core] COMMAND
ここで、COMMAND は次のいずれかです:
イントラネットのクロール ワンステップ クローラー
などなど...

何をすべきか教えてください

Hey Tejasp、私はあなたが私に言ったことをやった.NUTCH_HOME=/nutch/runtime/local/binも変更した.craw.javaファイルもそこにあるが、私がこれをしたとき

 npun@nipun:~$ nutch crawl urls -dir crawl -depth 2 -topN 10
 [Fatal Error] nutch-site.xml:6:6: The processing instruction target matching "[xX]           [mM][lL]" is not allowed.
 Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException:     The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1168)
at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1040)
at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:980)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:405)
at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:585)
at org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:290)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:375)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:138)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:59)
at org.apache.nutch.crawl.Crawl.main(Crawl.java:55)
    Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1079)
... 10 more

それは私にこの結果を示しました。

また、nutch-site.xml ファイルを確認し、次の編集を行いました

 <configuration>
 <property>
 <name>http.agent.name</name>
 <value>PARAM_TEST</value><!-- Your crawler name here -->
 </property>
 </configuration> 

サー、私はあなたが私に言ったようにしました。今回は 'ant clean runtime' で nutch をコンパイルしました。nutch home は

    NUTCH_HOME=/nutch/runtime/deploy/bin

    NUTCH_CONF_DIR=/nutch/runtime/local/conf

そして今、同じコマンドを実行すると、このエラーが発生します

  npun@nipun:~$ nutch crawl urls -dir crawl -depth 2 -topN 10
  Can't find Hadoop executable. Add HADOOP_HOME/bin to the path or run in local mode.

私の最終年度のプロジェクトのために、特定のウェブサイトから特定のものを検索できる検索エンジンを作成したいだけです....

4

2 に答える 2

3

Nutch バージョン 2.x では、Crawl クラスの名前が Crawler に変更されたようです。私は Hadoop を使用して Nutch を実行しているので、クロールには次のコマンドを使用します。

hadoop jar apache-nutch-2.2.1.job org.apache.nutch.crawl.Crawler urls -solr http://<ip>:8983 -depth 2

Nutch を単独で使用してクロールする場合、nutch スクリプトは新しいクラス名を参照する必要があります。

于 2013-07-07T09:31:16.373 に答える
1

しかし、ターミナルからnutchを実行すると表示されます

NUTCH_HOME/bin/nutchこれにより、スクリプトが正しい場所に存在することが確認されます。

エクスポートNUTCH_HOMEしてくださいNUTCH_CONF_DIR

どのモードのナットを使用しようとしていますか?

  1. ローカル モード: ジョブは Hadoop なしで実行されます。NUTCH_HOME/lib 内に Nutch jar が必要です。使用しているバージョンにちなんで名付けられました。例えば。Nutch リリース 1.3 の場合、jar 名は nutch-1.3.jar です。
  2. hadoop モード: Hadoop クラスターで実行されるジョブ。NUTCH_HOME内にnutchジョブファイルが必要です。リリースバージョンにちなんで名付けられました。nutch-1.3.job

これらのファイル (モードに対応する) がある場合は、それらを抽出し、Crawl.class ファイルが実際にその中に存在するかどうかを確認します。

Crawl.class ファイルが存在しない場合は、nutch ソースをコンパイルして新しい jar/job ファイルを取得します。

編集:

  1. 使用しないでant jarください。ant clean runtime代わりに使用してください。出力はNUTCH_INSTALLATION_DIR/runtime/localディレクトリ内で生成されます。そこからナットを実行します。それはあなたのものになりますNUTCH_HOME
  2. JAVA_HOME, NUTCH_HOME and NUTCH_CONF_DIR実行する前に、必要な変数をエクスポートします。
  3. Crawl.class ファイルが jar に存在しないような気がします。瓶を取り出して確認してください。参考:jarファイルを抽出するコマンドはjar -xvf <filename>
  4. #2 の後、クラス ファイルが jar に存在しないことがわかった場合は、ダウンロードした Nutch ソース コードに Java ファイルが含まれているかどうかを確認します。すなわち。nutch-1.x\src\java\org\apache\nutch\crawl\Crawl.java存在しない場合は、インターネットから入手して、nutch jar を再構築します。
  5. #2 の後、jar ファイルにクラス ファイルがあり、問題が再び発生する場合は、環境に問題があります。injectなどの他のコマンドを試してください。hadoop.log ファイルでいくつかのエラーを探します。あなたが見たものを教えてください。
于 2012-04-22T11:35:42.970 に答える