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.
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 –
verwenden Sie hbase als Datenspeicher? –
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 /) –