最近在研究nutch框架,本想搭建一个单机版的+mysql,一个分布式的+hbase。

分布式的成功了,版本选择hadoop2.6+hbase0.98+nutch2.3.1

单机版的报错了,网上有说nutch2x不支持mysql的,现在贴出来:

 

运行 nutch injects urls自动创建表报如下错误,

Exception in thread "main" Java.lang.NoClassDefFoundError: org/apache/avro/ipc/ByteBufferOutputStream
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:191)
    at org.apache.nutch.storage.StorageUtils.getDataStoreClass(StorageUtils.java:93)
    at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:77)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:218)
    at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)
Caused by: java.lang.ClassNotFoundException: org.apache.avro.ipc.ByteBufferOutputStream
    at java.NET.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.Net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 9 more

查看依赖包,下载的是avro版本是1.7.6,查看api,没有在包中发现org.apache.avro.ipc.ByteBufferOutputStream。经过度娘询问得知,nutch2.x的架构与1.x的架构有了很大的变化,2.x的底层架构改为了MR,这样和hadoop的结合更加完美了,而且数据库Hbase支持,mysql不再支持了。

posted on 2017-08-22 09:45  人民服务站  阅读(120)  评论(0)    收藏  举报