Avez-vous essayé GettingNutchRunningWithWindows from the Nutch Wiki?
Certains de mes étudiants expérimentent beaucoup et voici le résultat de leur travail:
testé avec nutch 1.7-http://www.apache.org/dyn/closer.cgi/nutch/1.7/apache-nutch-1.7-bin.zip
Vous aurez également besoin d'Cygwin.
1) Extraire nbre au chemin sans espaces. Par exemple:
d:\dev\ir\nutch-1.7
2) Copiez jdk à un endroit sans espace. J'ai essayé de faire un lien symbolique à l'intérieur de cygwin à la place, mais ça ne s'est pas bien passé. Par exemple
xcopy /S "C:\Program Files\Java\jdk1.7.0_21" c:\jdk1.7.0_21
3) Dans la configuration Cygwin les chemins java
3,1) export JAVA_HOME=/cygdrive/c/jdk1.7.0_21
3,2) export PATH=$JAVA_HOME/bin:$PATH
3,3) Vérifiez que tout est correct en appelant qui java. Devrait revenir /cygdrive/c/jdk1.7.0_21/bin/java
JUSQU'ICI - fixe le premier problème - avec des chemins java incorrects. Maintenant au deuxième problème - hadoop patcher.
4) Patch Hadoop
https://issues.apache.org/jira/browse/HADOOP-7682
https://github.com/congainc/patch-hadoop_7682-1.0.x-win
En bref: - mis patch-hadoop_7682-1.0.x-win.jar
dans d:\dev\ir\nutch-1.7\lib
- modifier d:\dev\ir\nutch-1.7\conf\nutch-site.xml
en ajoutant les éléments suivants:
<property>
<name>fs.file.impl</name>
<value>com.conga.services.hadoop.patch.HADOOP_7682.WinLocalFileSystem</value>
<description>Enables patch for issue HADOOP-7682 on Windows</description>
</property>
5) Temp Hadoop dir - Je suis pas sûr si c'est nécessaire (essayez avant de l'appliquer), parce que je l'ai ajouté avant d'appliquer le patch, mais dans mon d:\dev\ir\nutch-1.7\conf\nutch-site.xml
Je
<property>
<name>hadoop.tmp.dir</name>
<value>C:\tmp\asd</value>
</property>
6) Hadoop Version -Je ne suis pas sûr si cela est nécessaire (essayer avant de l'appliquer), je rétrogradé à Hadoop Hadoop-core-0.20.205.0.jarbefore j'ai trouvé le patch et il reste toujours sur ma configuration. Si vous trouvez nécessaire, il est ici: http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/0.20.205.0
6,1) Déplacer hadoop-core-1.2.1.jar
de d:\dev\ir\nutch-1.7\lib
vers un emplacement pour la sauvegarde
6.2) Télécharger hadoop-core-0.20.205.0.jar
à d:\dev\ir\nutch-1.7\lib
7) Quelques optimisations rampantes. Si vous avez besoin d'explorer de nombreux sites, ne commencez pas à explorer avec une énorme liste d'URL, et une grande profondeur et topN. Si vous le faites, vous verriez que nutch récupère les liens les uns après les autres à partir du même site de manière séquentielle, en attendant 5 secondes entre les extractions. La raison est que la profondeur 30 et le topN 200 rempliront très probablement la première file d'attente de récupération uniquement avec des liens provenant du même site. Nutch n'essaiera pas de les récupérer à la fois car, par défaut, il est configuré pour ne pas aller chercher plusieurs threads à partir du même site. Donc vous êtes condamné à attendre. Beaucoup. 7.1) Pour résoudre ce problème, exécutez d'abord plusieurs analyses avec une faible profondeur et topN - p. Ex.
bin/nutch crawl urls -dir crawl -depth 3 -topN 4
Cela remplira la file de lecture généré avec urls de plus d'un site
7.2) Ensuite, vous pouvez essayer de ramper d'une grande soirée avec
bin/nutch crawl urls -dir crawl -depth 20 -topN 150
7,3). Pour permettre une certaine multi-thread ajouter le suivant à la vôtre nutch-site.xml
. Cela permettra à plusieurs threads de récupérer le même hôte à la fois.
REMARQUE! Lisez la signification des propriétés sur Internet avant de les utiliser.
<property>
<name>fetcher.threads.fetch</name>
<value>16</value>
</property>
<property>
<name>fetcher.threads.per.queue</name>
<value>4</value>
</property>
<property>
<property>
<name>fetcher.queue.mode</name>
<value>byDomain</value>
</property>
<name>fetcher.threads.per.host</name>
<value>8</value>
<description></description>
</property>
<property>
<name>fetcher.verbose</name>
<value>true</value>
</property>
<property>
<name>fetcher.server.min.delay</name>
<value>5.0</value>
<description>applicable ONLY if fetcher.threads.per.host is greater than 1 (i.e. the host blocking is turned off).</description>
</property>
</configuration>
Note: Lorsque vous analysez beaucoup de sites, assurez-vous que votre D:\Dev\id\apache-nutch-1.7\conf\regex-urlfilter.txt
ne comprend que les sites qui vous intéressent. Sinon, vous finirez avec "Internet" sur votre disque.