2014-09-19 10 views
0

Je ne parviens pas à exécuter plusieurs tâches de cartographie pour Nutch 1.7 sur Hadoop YARN. J'utilise le script bin/crawl et j'ai fait les réglages suivants pour déclencher une récupération avec plusieurs tâches de carte, mais je ne suis pas capable de le faire.Exécution de plusieurs tâches de mappage Apache Nutch sur un cluster Hadoop

  1. Ajout des paramètres maxNumSegments et numFetchers à la phase de génération. bin $/nutch générer commonOptions $ $ CRAWL_PATH/crawldb $ CRAWL_PATH/segments -maxNumSegments $ numFetchers -numFetchers $ numFetchers -noFilter

  2. Suppression de la paramter topn et supprimé le paramètre noParsing parce que je veux l'analyse syntaxique arrive au moment de chercher. $ bin/nutch chercher $ commonOptions -D fetcher.timelimit.mins = $ $ timeLimitFetch CRAWL_PATH/segments/$ SEGMENT -threads $ numThreads # -noParsing #

La générer de phase ne génère plus d'un segment . Par conséquent, la phase de récupération ne crée pas plusieurs tâches de carte, mais je crois que le script est écrit ne permet pas au fecth de rechercher plusieurs segments, même si le générateur génère plusieurs segments. Est-ce que quelqu'un peut me faire savoir, comment vont-ils le script à exécuter dans un cluster Hadoop distribué?

Ou s'il y a une version différente du script qui devrait être utilisée?

Merci.

Répondre

0

Utilisez-vous Nutch 1.xx pour cela? Dans ce cas, la classe Generator recherche un drapeau appelé "mapred.job.tracker" et essaie de voir si elle est locale. Cette propriété a été abandonnée dans Hadoop2 et la valeur par défaut est définie sur local. Vous devrez remplacer la valeur de la propriété par autre chose que local et le générateur générera plusieurs partitions pour les segments.

0

J'ai récemment fait face à ce problème et j'ai pensé que ce serait une bonne idée de s'appuyer sur la réponse de Keith pour fournir une explication plus complète sur la façon de résoudre ce problème.

J'ai testé avec Nutch 1.10 et Hadoop 2.4.0.

Comme Keith dit le si bloc sur la ligne 542 dans Generator.java lit le mapred.job.tracker propriété et définit la valeur de la variable numLists-1 si la propriété est local. Cette variable semble contrôler le nombre de tâches réduites et a une influence sur le nombre de tâches cartographiques.

Écrasement la valeur de ladite propriété en mapred-site.xml répare ce problème:

<property> 
    <name>mapred.job.tracker</name> 
    <value>distributed</value> 
</property> 

(ou toute autre valeur que vous aimez, sauf local).

Le problème est que cela ne suffisait pas dans mon cas pour générer plus d'une tâche de mappe . J'ai également dû mettre à jour la valeur du paramètre numSlaves dans le script runtime/deploy/bin/crawl. Je n'ai trouvé aucune mention de ce paramètre dans le Nutch 1.x docs donc je suis tombé dessus après un peu d'essai et d'erreur.

############################################# 
# MODIFY THE PARAMETERS BELOW TO YOUR NEEDS # 
############################################# 

# set the number of slaves nodes 
numSlaves=3 

# and the total number of available tasks 
# sets Hadoop parameter "mapred.reduce.tasks" 
numTasks=`expr $numSlaves \* 2` 

... 
Questions connexes