2012-12-24 1 views
6

Je suis en train d'utiliser nutch 1.6 de l'environnement Windows, mais chaque fois que j'essaie de courir selon la procédure indiquée dans le site Nutch Tuorial Apache je finis toujours à l'exception suivante:L'utilisation nutch dans Windows 7

Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ajayn\mapred\staging\ajayn-1231695575\.staging to 0700 

J'ai beaucoup cherché sur le net mais il n'y a pas de solution concrète. Veuillez noter que je n'ai pas d'instances hadoop installées ou en cours d'exécution dans le système et mon seul but est le nutch d'essai en tant qu'agent d'exploration Web.

Est-il même possible d'exécuter nutch 1.6 dans les fenêtres et si oui tous les pointeurs sur la façon de s'y prendre et éviter l'exception ci-dessus.

PS: si elle aide, le/tmp/dossier a un attribut Lecture seule attaché à lui et il ne change pas même si vous essayez de le faire. Aussi depuis cygwin j'ai essayé de définir les permissions de fichier 777, mais chaque fois que j'essaye d'exécuter l'instance de nutch, un nouveau dossier est créé: "ajayn-1231695575" qui n'a aucun droit d'exécution.

Merci

Ajay

Répondre

0

Nous avons eu mêmes problèmes dans le till Nutch 1.3, nous vous recommandons d'utiliser un environnement de vm ubuntu avec la boîte virtuelle pour le développement et un répertoire partagé de sorte que vous pouvez développer avec votre environnement de développement sur les fenêtres et le déploiement à votre VM et exécutez Nutch sur Linux.

1

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.