我正在尝试在 Debian Squeeze 上使用 HBase 0.94.14 设置 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)
我试图弄清楚类路径是否存在问题,但最终发现: - 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>
对应于 Nutch 0.94.4 ...
还尝试重建和使用 Gora 0.5,但它使 Nutch 构建失败。
我根本不是 Java 专家,我不明白为什么 Nutch 没有使用正确版本的 HBase,为什么似乎缺少源代码和 java 类,此时我完全陷入困境。真是一团糟。
感谢您提供任何有助于挽救这种情况的提示。