nutch+hbase:hbase版本问题和java异常

2exbekwf  于 2021-06-09  发布在  Hbase
关注(0)|答案(3)|浏览(524)

我正在尝试使用hbase 0.94.14在debian上设置nutch2.2.1。我仔细阅读了nutch1和nutch2教程以及各种文档。我可以构建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,我发现找不到“hbastore.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
根据我发现的一些在线讨论,我将nutch树中的hbase-0.90.4.jar替换为hbase树中的hbase-0.94.4。。。
但是:-它不能解决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>

相当于坚果0.94.4。。。
也试图重建和使用戈拉0.5,但它使nutch建设失败。
我根本不是java方面的Maven,我不明白为什么nutch没有使用正确版本的hbase,为什么它似乎缺少源代码和java类,在这一点上我完全卡住了。真是一团糟。
谢谢你提供的任何有助于避免这种情况的建议。

g6baxovj

g6baxovj1#

阿方索,
我查了一下哥拉的房产,还可以。
另外,我尝试了最新的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
f1tvaqid

f1tvaqid2#

尝试更新版本号:
进入ivy/ivy.xml;
将org=“org.restlet.jse”的rev=“2.2.1”更改为rev=“2.2.3”(发生3次)。

iqxoj9l9

iqxoj9l93#

你确定有这条线吗 gora.properties :

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

特别注意命名空间:
org.apache.gora.hbase.store.hbasetore
而不是
org.apache.gora.memory.store.hbasetore存储
我希望这能解决这个问题:)
编辑关于版本:
关于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 checkouthttp://svn.apache.org/repos/asf/nutch/branches/2.x/
nutch 2.3-snapshot依赖于gora-0.5,而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

相关问题