java - 将 Apache Nutch 2.3 与 Hbase 0.94.14 和 Solr 5.2.1 集成时出错

标签 java apache hadoop solr

我正在将 Nutch 与 Hbase 和 Solr 集成。

启动Hadoop和Hbase服务后,我在Nutch Home中运行如下命令

sudo -E bin/crawl urls/seed.txt TestCrawl http://localhost:8983/solr/2

我遇到了这些错误:

Injecting seed URLs
/usr/local/apache-nutch-2.3.1/runtime/local/bin/nutch inject urls/seed.txt -crawlId TestCrawl
InjectorJob: starting at 2016-05-26 15:41:14
InjectorJob: Injecting urlDir: urls/seed.txt
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
    at org.apache.gora.hbase.store.HBaseStore.initialize(HBaseStore.java:114)
    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:78)
    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:70)
    at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 10 more
Error running:
  /usr/local/apache-nutch-2.3.1/runtime/local/bin/nutch inject urls/seed.txt -crawlId TestCrawl
Failed with exit value 1.

谁能告诉我它有什么问题?

最佳答案

这是Nutch中的一个bug,在执行爬取脚本时无法定位传递依赖。

更好的配置是 nutch-2.3.1 和 hbase-0.98.8-hadoop2

为了更好地理解,请引用下面给出的 url

https://wiki.apache.org/nutch/Nutch2Tutorial

这是 gora-hbase 0.6.1 中的一个错误

另外添加缺少的 hbase-common-0.98.8-hadoop2.jar 传递依赖,这是 gora-hbase 0.6.1 中的一个错误

 <dependency org="org.apache.hbase" name="hbase-common" rev="0.98.8-hadoop2" conf="*->default" />

有了这个我就可以成功爬取了。

关于java - 将 Apache Nutch 2.3 与 Hbase 0.94.14 和 Solr 5.2.1 集成时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458637/

相关文章:

hadoop - 配置Hadoop为每个 key 使用不同的Reducer流程?

docker - HDFS 从 kafka 写入 : createBlockOutputStream Exception

apache - 如何为 httpd 服务器的 www 和非 www 域编写 SSL 虚拟主机?

java - 使用 onPreviewFrame 运行 ML 模型

java - 如果目录发生变化,如何通过 Java 从 Linux 连续获取信息?

java - Java中的延迟队列实现

macos - Mac OS X 雪豹上的 Apache 似乎无法运行

android - HttpHostConnectException 10.0.2.2 :8080 refused

hadoop - MapR DB表的物理数据位置

java - mongoTemplate.findAll() 抛出异常