Nutch + HBase:hbase版本问题和java异常

时间:2014-11-27 09:01:29

标签: java hbase nutch restlet gora

我正在尝试使用HBase 0.94.14在Debian Squeeze上设置Nutch 2.2.1。 我仔细阅读了Nutch 1和2教程以及各种文档。 我可以构建HBase 0.94.14,并最终使它工作(我可以创建表等) 我可以毫无问题地建立Nutch(它是在Gora 0.3上设置的)

现在的问题是: 1-在尝试启动Nutch时,我得到以下描述:

./nutch inject /root/nutch/apache-nutch-2.2.1/urls/
InjectorJob: starting at 2014-11-27 09:43:53
InjectorJob: Injecting urlDir: /root/nutch/apache-nutch-2.2.1/urls
InjectorJob: java.lang.ClassNotFoundException: org.apache.gora.memory.store.HBaseStore
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

使用strace -f,我发现找不到“HBaseStore.class”:

stat("/root/nutch/apache-nutch-2.2.1/runtime/local/org/apache/gora/memory/store/HBaseStore.class",\
  <unfinished ...>
[pid  1827] <... futex resumed> )       = -1 EAGAIN (Resource temporarily unavailable)

我试图找出classpath是否存在问题,但最终发现: - HBaseStore.class既不存在于Nutch目录树中,也不存在于Hbase 0.94.4目录树中 - Nutch树中的HBase jar版本非常出色:hbase-0.90.4.jar

根据我发现的一些在线讨论,我用hbase树中的hbase-0.94.4替换了nutch-0.90.4.jar ...

但: - 它不能修复java问题 - 每次我重建nutch时,hbase-0.90.4.jar都回来了,我在nutch树中找不到任何来源: - /

请注意/root/nutch/apache-nutch-2.2.1/conf/hbase-site.xml有:

<property>
<name>hbase.rootdir</name>
<value>/root/nutch/hbase-master/conf/</value>
</property>

对应于Nutch 0.94.4 ...

还尝试重建和使用Gora 0.5,但它使Nutch构建失败。

我根本不是Java的专家,我不明白为什么Nutch没有使用正确版本的HBase,为什么它似乎缺少源代码和java类,而且此时我完全是卡住。真是一团糟。

感谢任何有助于挽救这种情况的提示。

3 个答案:

答案 0 :(得分:0)

您确定在gora.properties中有这一行:

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

特别注意命名空间:

org.apache.gora。的 HBase的 .store.HBaseStore

而不是

org.apache.gora。的存储器 .store.HBaseStore

我希望这可以解决问题:)


编辑版本:

关于hbase-0.90.4返回,Gora-0.3取决于HBase-0.90.4,这与HBase-0.94.14不相容。

要使用HBase-0.94.14运行,必须使用Nutch-2.3-SNAPSHOT(称为“2.x”)。您在Nutch2Tutorial中有一个链接,或者您可以svn checkout http://svn.apache.org/repos/asf/nutch/branches/2.x/

Nutch 2.3-SNAPSHOT依赖于Gora-0.5,这取决于HBase 0.94.14


似乎已经解决了:

http://mail-archives.apache.org/mod_mbox/nutch-dev/201412.mbox/%3C548F4F1B.7020206@googlemail.com%3E

https://issues.apache.org/jira/browse/NUTCH-1899

答案 1 :(得分:0)

阿方索,

我查了一下gora.properties,没关系。

此外,我已经尝试了最新的2.3快照,但不幸的是它在构建时遇到了一些依赖问题:

[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       ::   org.restlet.jse#org.restlet.lib.org.restlet.lib.org.json;2.0:     java.text.ParseException: inconsistent module descriptor file found in 'http://maven.restlet.org/org/restlet/jse/org.restlet.lib.org.restlet.lib.org.json/2.0/org.restlet.lib.org.restlet.lib.org.json-2.0.pom': bad module name: expected='org.restlet.lib.org.restlet.lib.org.json' found='org.restlet.lib.org.json'; 
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :::: ERRORS
[ivy:resolve]       restlet: bad module name found in http://maven.restlet.org/org/restlet/jse/  org.restlet.lib.org.restlet.lib.org.json/2.0/org.restlet.lib.org.restlet.lib.org.json-2.0.pom: expected='org.restlet.lib.org.restlet.lib.org.json found='org.restlet.lib.org.json'
[ivy:resolve] 
[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED
/root/nutch/2.3/build.xml:467: impossible to resolve dependencies:
        resolve failed - see output for details

答案 2 :(得分:0)

尝试更新版本号:

  • 进入ivy / ivy.xml;
  • 将org =“org.restlet.jse”的rev =“2.2.1”更改为rev =“2.2.3”(发生3次)。