nutch注入hbase NoSuchMethodError

时间:2012-09-11 21:07:47

标签: hbase nutch

当我尝试运行nutch时,我遇到以下错误。我安装并运行了hbase-0.94.0,hadoop也运行也没有问题。在$ {NUTCH_HOME} / runtime / local / lib中存在hbase-0.94.0.jar。我得到以下错误,它似乎是一个依赖的问题,但我很困难。 感谢

./nutch inject /tmp/seed.txt
InjectorJob: starting
InjectorJob: urlDir: /tmp/seed.txt
2012-09-11 22:02:14.097 java[7636:1903] Unable to load realm info from SCDynamicStore
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V
    at org.apache.gora.hbase.store.HBaseMapping$HBaseMappingBuilder.addFamilyProps(HBaseMapping.java:114)
    at org.apache.gora.hbase.store.HBaseStore.readMapping(HBaseStore.java:545)
    at org.apache.gora.hbase.store.HBaseStore.initialize(HBaseStore.java:113)
    at org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:102)
    at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:161)
    at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:135)
    at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:69)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:243)
    at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:268)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:288)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:298)

3 个答案:

答案 0 :(得分:1)

它适用于hbase-0.90.5我想在使用nutch 2和hbase-0.94时会出现问题或其他一些配置。*

答案 1 :(得分:1)

这是目前常见的兼容性问题。我们只需要等待Apache Gora采用Apache HBase 0.98.x或更高版本。同时存在下面描述的解决方法。

Apache Nutch 2.2.1使用Apache Gora 0.3,它只支持旧的Apache HBase 0.90.x. 要使用Nutch 2.2.x,您必须:

  1. 克隆,配置和构建新的Nutch from the official Git branch 2.x

  2. 克隆并构建my version of Apache HBase 0.94.24-hadoop-2.5.0

  3. 您还可以阅读compatibility documentation for Apache HBase以了解如何为任何Hadoop版本构建自己的版本。

    要完全了解情况,请查看类似的issue with Apache Gora 0.3

    我测试的工作堆是:

    • Apache Nutch来自2.x git branch,它使用Gora 0.4;
    • Apache Hbase 0.94.24-hadoop-2.5.0;
    • Apache Hadoop 2.5.0。

答案 2 :(得分:0)

当我在命令中使用0.94.1运行nutch2.0时,它是nosuchmethod,而在eclipse中它是java.lang.NoClassDefFoundError:org / apache / hadoop / hbase / HBaseConfiguration。 althogh我复制jar或配置classpath。这不行。 现在我将改为90.5,我希望它能够发挥作用。