2017-05-29 5 views
1

Ich versuche, Apache Nutch und Apache Solr einzurichten, so dass unsere Website interne Website-Suche haben kann. Ich habe meinen Leitfäden gefolgt und obwohl sie sehr nützlich sind, fehlt ihnen was zu tun ist, wenn ein Fehler auftritt und die meisten scheinen zu diesem Zeitpunkt veraltet zu sein.Einrichten von Nutch mit Solr auf Centos

Ich bin mit JDK 131, Nutch 2.3.1 und Solr 6.5.1

Dies ist die Folge meines Handelns aus der keine Root-Benutzer

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 

add:

<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 

Dann ist dieses erhalte ich:

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) 

Meine Fragen sind, warum bekomme ich diesen Fehler und wie löse ich es. Ich habe an vielen Stellen gesehen, das Schema.xml das Verzeichnis solr zu ändern, aber es gibt nirgends eine Datei schema.xml im Verzeichnis solr.

Antwort

0

Da Sie sql-store als Nutch-Back-End verwenden, haben Sie ivy/ivy.xml bearbeitet und diese Zeile auskommentiert?

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

Wenn nicht, uncomment diese Zeile und sauber & wieder zu bauen. Wenn es immer noch nicht funktioniert, lassen Sie mich Ihren vollständigen Ansatz oder das Tutorial, das Sie befolgt haben, wissen.

bearbeiten

Wie Sie sagten, Sie hbase als Speicher verwenden, Ihr wird nutch-site.xml Eigenschaft soll das sein -

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

Bitte folgen Sie dem Link, den Sie sorgfältig erwähnt.

+0

Das löste das mit dem injizieren der URL. Jetzt habe ich einen Fehler mit dem generate code ** sudo -E runtime/local/bin/nutch generieren -topN 10 ** GeneratorJob: ab 2017-05-30 11:33:08 GeneratorJob: Am besten auswählen -scoring URLs zum Abrufen fällig. GeneratorJob: ab GeneratorJob: Filterung: true GeneratorJob: Normalisieren: true GeneratorJob: Erste N: 10 Exception in thread "main" java.lang.NoClassDefFoundError: org/Apache/hadoop/hbase/HBaseConfiguration –

+0

verwenden Sie hbase als Datenspeicher? –

+0

Ich glaube schon. Ich installierte es und befolgte diese Anweisungen [link] (https://anil.io/blog/apache/nutch/apache-nutch-2-3-hbase-0-94-14-and-solr-5-2-1 -tutorial /) –