Apache Nutch 1.9在Hadoop 1.2.1上没有jar文件中的Crawl类

时间:2015-01-19 13:40:55

标签: apache hadoop web-crawler classnotfoundexception nutch

我正在运行一个由五个Cubieboard组成的群集,类似RaspberryPi的ARM主板(因为32位)安装了Hadoop 1.2.1。有一个名称节点和四个从节点。

对于我的最终论文,我想安装Apache Nutch 1.9和Solr进行大数据分析。 我按照这样解释了设置:http://wiki.apache.org/nutch/NutchHadoopTutorial#Deploy_Nutch_to_Multiple_Machines

当启动Jar Job-File以在整个集群上部署Nutch时,有一个Class not found异常,因为自nutch 1.7后不再有Crawl类:http://wiki.apache.org/nutch/bin/nutch%20crawl 即使在源文件中,它也会被删除。

然后显示以下错误:

hadoop jar apache-nutch-1.9.job org.apache.nutch.crawl.Crawl urls -dir crawl -depth 3 -topN 5 警告:不推荐使用$ HADOOP_HOME。

线程“main”中的异常java.lang.ClassNotFoundException:org.apache.nutch.crawl.Crawl         在java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)         at java.security.AccessController.doPrivileged(Native Method)         在java.net.URLClassLoader.findClass(URLClassLoader.java:205)         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)         at java.lang.Class.forName0(Native Method)         在java.lang.Class.forName(Class.java:266)

我在包中找到的其他类似乎工作,环境设置应该没有问题。

您需要使用哪些替代方法对整个群集执行爬网操作。 从Nutch 2.0版开始,就有了一个Crawler类。但不是1.9 :(

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

我相信您应该使用bin / crawl脚本而不是将自己的nutch作业提交给hadoop。为此,您需要执行以下操作:

  1. 下载Nutch 1.9源代码,假设您将源代码解压缩为nutch-1.9。
  2. 导航到ntuch-1.9并运行:

    ant build
    
  3. 构建完成后,运行

    cd runtime/deploy
    
    hadoop fs -put yourseed yourseedlist
    
    bin/crawl seed.txt crawl http://yoursolrip/solr/yoursolrcore
    

    我希望这会有所帮助。