2017-05-29 78 views
1

我试图设置Apache Nutch和Apache Solr,因此我们的网站可以进行内部网站搜索。我遵循我的指导,尽管他们非常有用,但如果发生错误并且大多数看起来已经过时,他们缺乏做什么。在Centos上设置Nutch与Solr

我使用JDK 131,Nutch的2.3.1,和Solr 6.5.1

这从没有root用户我的行动顺序

sudo wget [java url] to /opt 
sudo tar xvf java.tar.gz 
export JAVA_HOME=/opt/java/ 
export JAVA_JRE=/opt/java/jre 
export PATH=$PATH:/opt/java/bin:/opt/java/jre/bin 
cd solr6.5.1/ 
sudo start runtime -e cloud -noprompt 

sudo wget [solr url] to /root 
sudo tar xvf solr.tar.gz 


sudo wget [nutch url] to /opt 
sudo tar xvf nutch.tar.gz 
cd /opt/apache-nutch-2.3.1 
sudo vi nutch-site.xml 

地址:

<configuration> 
<property> 
    <name>http.agent.name</name> 
    <value>nutch-solr-integration</value> 
</property> 

<property> 
    <name>generate.max.per.host</name> 
    <value>100</value> 
</property> 

<property> 
    <name>plugin.includes</name> 
    <value>protocol-http|urlfilter-regex|parse-(html|tika|metatags)|index-(basic|anchor|metadata)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|indexer-solr|urlnormalizer-(pass|regex|basic)</value> 
    <description> At the very least, I needed to add the parse-html, urlfilter-regex, and the indexer-solr. 
    </description> 
</property> 

<property> 
    <name>storage.data.store.class</name> 
    <value>org.apache.gora.sql.store.SqlStore</value> 
    <description>The Gora DataStore class for storing and retrieving data.</description> 
</property> 
</configuration> 

cd /opt/apache-nutch-2.3.1 
mkdir urls 
cd urls 
sudo vi seed.txt 
    add [our site url] 
[ESC] 
:w 
:q 
cd ../conf 
sudo vi regex-urlfilter.xml 
add: 
+^http://([a-zA-Z0-9]*\.)*[domain of our site].com/ 
[ESC] 
:w 
:q 
cd .. 
sudo ant runtime 
sudo -E runtime/local/bin/nutch inject urls -crawlId 3 

然后我得到这个:

InjectorJob: Injecting urlDir: urls 
InjectorJob: java.lang.ClassNotFoundException: org.apache.gora.sql.store.SqlStore 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at org.apache.nutch.storage.StorageUtils.getDataStoreClass(StorageUtils.java:93) 
    at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:77) 
    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) 

我的问题是如何得到这个错误,以及如何解决它。我在很多地方看到要修改schema.xml solr目录,但solr目录中没有任何schema.xml文件。

回答

0

由于您正在使用sql-store作为Nutch后端,您是否编辑ivy/ivy.xml并取消注释此行?

<dependency org="org.apache.gora" name="gora-sql" rev="0.1.1-incubating" conf="*->default" /> 

如果不是,则取消注释此行并清理&再次构建。如果它仍然无效,请告诉我您的完整方法或您遵循的教程。

编辑

正如你所说,你正在使用HBase的作为店面,你的nutch-site.xml中财产应该是这样 -

<property> 
    <name>storage.data.store.class</name> 
    <value>org.apache.gora.hbase.store.HBaseStore</value> 
</property> 

请按照你仔细提到的链接。

+0

解决了注入url。生成代码 ** sudo -E运行时/ local/bin/nutch生成-topN 10 ** GeneratorJob:在2017-05-30 11:33:08开始发动机工作:选择最佳 - 取得抓取的到期网址。 GeneratorJob:开始 GeneratorJob:过滤:真 GeneratorJob:正火:真 GeneratorJob:TOPN:螺纹10 异常 “主要” java.lang.NoClassDefFoundError:组织/阿帕奇/的Hadoop/HBase的/ HBaseConfiguration –

+0

您使用HBase的作为数据存储? –

+0

我相信是的。我安装了它,并按照这些说明[链接](https://anil.io/blog/apache/nutch/apache-nutch-2-3-hbase-0-94-14-and-solr-5-2-1 -tutorial /) –