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.
所有我想创建一个搜索引擎,可以从某些网站搜索某些东西,为我的最后一年项目....
答案 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_HOME
和NUTCH_CONF_DIR
你想用哪种荷兰模式?
如果您碰巧拥有这些文件(对应于模式),则提取这些文件并查看Crawl.class文件是否确实存在于其中。
如果Crawl.class文件不存在,则通过编译nutch源获取新的jar / job文件。
修改强>
ant jar
。请改用ant clean runtime
。输出在NUTCH_INSTALLATION_DIR/runtime/local
目录中生成。从那里跑nutch。这将是您的NUTCH_HOME
JAVA_HOME, NUTCH_HOME and NUTCH_CONF_DIR
。jar -xvf <filename>
nutch-1.x\src\java\org\apache\nutch\crawl\Crawl.java
如果不存在,请从互联网上获取并重建nutch jar。