Nutch显示以下错误,该怎么做

时间:2012-04-22 11:02:09

标签: nutch

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是以下之一:
  为Intranet爬网一步式爬网程序
等等......

请告诉我该怎么做

嘿Tejasp我做了你告诉我的事情,我更改了NUTCH_HOME = / nutch / runtime / local / bin也是crawl.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 home编译了nutch

    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.

所有我想创建一个搜索引擎,可以从某些网站搜索某些东西,为我的最后一年项目....

2 个答案:

答案 0 :(得分: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脚本应引用新的类名。

答案 1 :(得分:1)

  

但是当我从终端运行nutch时显示

这将验证NUTCH_HOME/bin/nutch脚本是否位于正确的位置。

请导出NUTCH_HOMENUTCH_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
  3. 如果您碰巧拥有这些文件(对应于模式),则提取这些文件并查看Crawl.class文件是否确实存在于其中。

    如果Crawl.class文件不存在,则通过编译nutch源获取新的jar / job文件。

    修改

    1. 不要使用ant jar。请改用ant clean runtime。输出在NUTCH_INSTALLATION_DIR/runtime/local目录中生成。从那里跑nutch。这将是您的NUTCH_HOME
    2. 在运行之前导出所需的变量JAVA_HOME, NUTCH_HOME and NUTCH_CONF_DIR
    3. 我感觉罐子里没有Crawl.class文件。请取出罐子并检查出来。仅供参考:提取jar文件的命令是jar -xvf <filename>
    4. 如果在#2之后,您会看到jar中存在类文件aint,然后查看您下载的nutch源代码是否具有java文件。即。 nutch-1.x\src\java\org\apache\nutch\crawl\Crawl.java如果不存在,请从互联网上获取并重建nutch jar。
    5. 如果在#2之后,jar文件有类文件,你再次看到问题,那么环境就出了问题。尝试其他一些命令,如inject。在hadoop.log文件中查找一些错误。让我知道你看到了什么。