Upload
mohamed-ben-bouzid
View
6.456
Download
4
Embed Size (px)
DESCRIPTION
Installation Et Configuration De Nutch sous ubuntu
Citation preview
Annexe 1
Installation et configuration
de Nutch-1.0
Cette annexe décrit toutes les étapes d'installation et de configuration du moteur de
recherche Nutch-1.0 sur une plateforme GNU/Linux.
1. INTRODUCTION
Nutch est un moteur de recherche Open Source complet :
◦ Outil d'Exploration
◦ Outil d'Indexation
◦ Outil de recherche
◦ Interface Graphique
◦ Distribué et répliqué (Hadoop)
Depuis le 23 Mars 2009, une nouvelle version de Nutch est disponible, cette version inclue
plusieurs nouveautés :
◦ Nouveau FrameWork pour l'Indexation
◦ Nouveau FrameWork pour le scoring (référencement)
◦ Intégration de Apache Solr
◦ Support des dernières versions de
▪ Lucene 2.4
▪ Hadoop 0.19.1
▪ Tomcat 6
▪ JDK6
▪ etc.
2. ENVIRONNEMENT
• Dernière version de Ubuntu : 9.04
• Dernière version de JDK : 1.6.0_13-b03
• Dernière version de Apache Tomcat : 6.0.18
• Dernière version de Nutch : 1.0
• Dernière version de Slor : 1.3.0
3. PRÉ-REQUIS
Pour cette installation de Nutch, nous supposant que Ubuntu est bien installé, et que
l'administrateur à tous le droits du compte super-utilisateur.
Nous supposons aussi qu'un minimum de connaissance des commandes Shell et de
l'environnement Lunix (Ubuntu) est acquis.
4. INSTALLATION ET CONFIGURATION DE JAVA
L'un des avantages de Nutch, c'est sa portabilité. En effet, Nutch s'installe sur toute plate-
forme supportant la machine virtuelle Java, pour cela, nous allons commencer notre installation de
Nutch par l'installation et la configuration de l'environnement Java JKD 1.6 update 13:
• Télécharger la dernière version de java JDK 1.6 update 13 à partir du site de Sun :
http://java.sun.com/javase/downloads/index.jsp
• Sélectionner Java SE Development Kit (JDK), cela vous mène à une page vous permettant
de définir votre OS (Linux), puis Télécharger le : jdk-6u13-linux-i586.bin et
• Placer le dans /usr/local/
• Dans un terminal tapez:
sudo chmod u+x jdk6u13linuxi586.bin ./jdk6u13linuxi586.bin
• Définition de JAVA_HOME pour le système: pour cela éditez le fichier bashrc : $sudo gedit /etc/bash.bashrc
• À la fin du fichier, tapez : export JAVA_HOME=/usr/local/jdk1.6.0_13 export PATH=$JAVA_HOME/bin:$PATH
• Vérifiez avec : $java version java version "1.6.0_13" Java (TM) SE Runtime Environment (build 1.6.0_13b04) Java HotSpot (TM) Server VM (build 11.2b01, mixed mode)
5. INSTALLATION ET CONFIGURATION DE TOMCAT
Bien que Nutch tourne parfaitement en lignes de commande (dans un terminal Shell), il est
indispensable de penser à son utilisation via son interface graphique qui tourne sur Tomcat 6, pour
cela :
• Télécharger la dernière version d'Apache Tomcat 6.0.18 à partir du site de d'Apache :
http://tomcat.apache.org/download-60.cgi • Selectionner le .tar.gz du Binary Distributions , cela vous permet de télécharger le fichier :
apache- tomcat-6.0.18.tar.gz
• Décompressez le et placer le dans /usr/local/ puis pensez à le rénommer en tomcat-6.0.18
pour faciliter son utilisation.
• Nous allons ensuite ajouter une administrateur de tomcat, pour cela éditez le fichier : tomcat-users.xml edit /usr/local/tomcat6.0.18/conf/tomcat-users.xml et ajoutez deux rôle, et un utilisateur :<?xml version='1.0' encoding='utf-8'?>
<tomca-users> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="admin,manager"/>
</tomcat-users> • Si vous voulez, vous pouvez changer le port de Tomcat par défaut c'est le 8080 qui est
utilisé), nous allons le changer pour utiliser le 8086, pour cela éditez le fichier
/conf/server.xml et modifier son port : <Connector port="8086" protocol="HTTP/1.1" ...
• Lancez ensuite tomcat: ./usr/local/tomcat-6.0.18/bin/startup.sh
• Vous devez avoir quelque chose comme ça: Using CATALINA_BASE: /usr/local/tomcat6.0.18 Using CATALINA_HOME: /usr/local/tomcat6.0.18 Using CATALINA_TMPDIR: /usr/local/tomcat6.0.18/temp Using JRE_HOME: /home/mbb/jdk1.6.0_13
• Dans un navigateur : http://localhost:8086/
• Et pour la page manager : http://localhost:8086/manager/html/
6. INSTALLATION ET CONFIGURATION DE NUTCH
Nous allons passer ensuite à l'installation de Nutch-1.0, dans cette partie nous allos se limiter
à une installation minimale de Nutch, pour cela :
• Télécharger la dernière version de Nutch-1.0 sur le site de Apache : (nutch-1.0.tar.gz) http://lucene.apache.org/nutch/index.html
• Décompressez la dans votre répertoire /home/user/ ( ~/ ) et créez un dossier urls dans le dossier d'installation de Nutch, puis un fichier urls.txt dans ce dossier : mkdir /usr/lib/nutch/urls touch /usr/lib/nutch/urls.txt
• Editez ce fichier et ajoutez les hyperliens. Dans notre cas, on va se limiter à un seul site: http://lucene.apache.org/nutch/
• Éditez le fichier conf/crawl-urlfilter.txt et remplacez MY.DOMAIN.NAME par le nom de domaine que vous voulez crawler. Par exemple vous voulez limiter le crawling au domaine d'apache.org seulement, donc la ligne sera comme suit: +^http://([a-z0-9]*\.)*apache.org/
• Éditez le fichier conf/nutch-site.xml et ajoutez ces proprietés: <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. -->
<configuration><property>
<name>http.agent.name</name><value></value><description>HTTP 'User-Agent' request header. MUST NOT be empty - please set
this to a single word uniquely related to your organization.NOTE: You should also check other related properties:
http.robots.agentshttp.agent.descriptionhttp.agent.urlhttp.agent.emailhttp.agent.version
and set their values appropriately. </description></property>
<property> <name>http.agent.description</name> <value></value>
<description>Further description of our bot- this text is used in the User-Agent header. It appears in parenthesis after the agent name.
</description></property>
<property><name>http.agent.url</name>
<value></value>
<description>A URL to advertise in the User-Agent header. This will appear in parenthesis after the agent name. Custom dictates that this should be a
URL of a page explaining the purpose and behavior of this crawler.</description>
</property>
<property> <name>http.agent.email</name> <value></value>
<description>An email address to advertise in the HTTP 'From' reques theader and User-Agent header. A good practice is to mangle this address (e.g. 'info at example dot com') to avoid spamming.
</description></property>
</configuration>
• Ensuite, éditez le fichier /conf/nutch-default.xml et cherchez ces paramètres en les attribuant ces valeurs suivantes:
Paramètres Valeurs attribuées
http.agent.name <name>http.agent.name</name> <value>NUTCHCRAWLER</value>
http.content.limit <name>http.content.limit</name> <value>-1</value>
indexer.max.tokens <name>indexer.max.tokens</name> <value>2147483647</value>
plugin.includes <name>plugin.includes</name> <value>protocol-http|urlfilter-regex|parse-(text|html|js|pdf|msword|mspowerpoint|msexcel)|index-basic|query-(basic|site|url)|summary-basic| scoring-opic|analysis-(fr)</value>
searcher.dir <name>searcher.dir</name> <value>/home/mbb/nutch-1.0/crawldir/</value>
• Lancement de Nutch :./bin/nutch crawl urls -dir crawldir -threads 10 -depth 3 -topN 50 Avec : ◦ urls nom du répertoire contenant les fichiers des hyperliens.◦ -dir crawldir nom du répertoire créé pur mettre les fichiers téléchargés dedans. ◦ -threads 10 détermine le nombre de processus qui vont faire le crawling simultanément. ◦ -depth 3 détermine la profondeur du crawling. ◦ -topN 50 détermine le nombre de pages maximum à crawler.
• Recherche dans un terminal : mbb@mbb-laptop:~/nutch1.0$ bin/nutch org.apache.nutch.searcher.NutchBean
nutch Total hits: 25 0 20090406235738/http://lucene.apache.org/nutch/
... is available here . June 2005: Nutch graduates from IncubatorNutch has now graduated from the ... of Lucene. January 2005: ... 1 20090406235751/http://wiki.apache.org/nutch/ ... wrote Lucene and Nutch. Stefan's Nutch Documentation Frutch WikiFrench Nutch ... to come). Larger / better quality Nutch ... 2 20090406235843/http://www.apache.org/dyn/closer.cgi/ lucene/nutch/... osuosl.org/pub/apache/lucene/nutch/ ftp://www.ibiblio.org/pub... net/pub/apache.org/lucene/ nutch/ ftp://apache.cs.utah.edu
• Interface Graphique de Nutch : 1- Déploiement de l'interface de Nutch dans Tomcat:
▪ Dans http://localhost:8086/manager/html/ allez à la section « WAR file to deploy » et charger le fichier ~/nutch-1.0/nutch-1.0.war
▪ L'application sera ajoutée dans la section « Applications » 2- Allez ensuite à /usr/local/tomcat-6.0.18/webapps/nutch-1.0/WEB-INF/classes et
remplacez ces trois fichiers par ceux du répertoire ~/nutch-1.0/conf ◦ crawl-urlfilter.txt ◦ nutch-site.xml ◦ nutch-default.xml
3- Rechargez ensuite l'application dans l'interface manager de Tomcat. 4- Et voilà, il ne vous reste plus qu'allez à la page : http://localhost:8086/nutch-1.0/fr/ et
lancer vos recherches à partir de l'interface graphique.
7. INTEGRATION DE SOLR AVEC NUTCH
Depuis la dernière version de Nutch-1.0, l'une des nouvelles fonctionnalités la plus
remarquable, c'est l'intégration de Solr avec Nutch. Dans ce cas, Solr sera utilisé comme un outil de
recherche seulement, alors que Nutch sera utilisé où il excelle: l'exploration et l'extraction du
contenu.
L'utilisation de Solr nous permet de bénéficier de ces atouts dans la phase de recherche, par
exemple, la vérification orthographique, les statistiques faites sur les requêtes, l'utilisation du cache,
les mises à jour, ainsi que son interface graphique d'administration, alors que Nutch, lui il nous
permet de bénéficier d'un ensemble complet de fonctionnalités telles que l'intelligence des robots de
crawling, la robustesse et l'évolutivité (Nutch fonctionne sur Hadoop, de sorte que vous pouvez
exécuter Nutch sur une seule machine ou sur un cluster de 100 machines).
Nous essayons dans cette partie de décrire les étapes d'installation et d'intégration de Solr
avec Nutch:
• Commencez par télécharger la dernière version de Solr sur cette page (version Linux 23bits)
: http://www.lucidimagination.com/Downloads et extractez le dans votre dossier Home.
• De même, téléchargez la dernière version de Nutch à partir de ce site
http://lucene.apache.org/nutch/index.html et extractez la dans votre dossier Home aussi.
• Copier le fichier schema.xml de apache-nutch-1.0/conf dans apache-solr-1.3.0/example/solr/
conf (remplacez le fichier existant). Ensuite cherchez l'attribut « content » et mettez le à true
<field name=”content” type=”text” stored=”true” indexed=”true”/>
• Ouvrez le fichier le fichier de configuration de Solr apache-solr-
1.3.0/example/solr/conf/solrconfig.xml et ajoutez cette configuration:
<requestHandler name="/nutch" class="solr.SearchHandler" ><lst name="defaults">
<str name="defType">dismax</str><str name="echoParams">explicit</str><float name="tie">0.01</float><str name="qf">content^0.5 anchor^1.0 title^1.2</str><str name="pf">content^0.5 anchor^1.5 title^1.2 site^1.5</str><str name="fl">url</str><str name="mm">2<-1 5<-2 6<90%</str><int name="ps">100</int><bool hl="true"/><str name="q.alt">*:*</str><str name="hl.fl">title url content</str><str name="f.title.hl.fragsize">0</str><str name="f.title.hl.alternateField">title</str><str name="f.url.hl.fragsize">0</str><str name="f.url.hl.alternateField">url</str><str name="f.content.hl.fragmenter">regex</str>
</lst></requestHandler>
• Lancez ensuite Solr avec:
cd apache-solr-1.3.0/examplejava -jar start.jar
• Ensuite nous passons à la configuration de Nutch, pour cela commencez par éditer le fichier conf/nutch-site.xml et ajoutez ces propriétés: <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><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|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property></configuration>
• Ensuite, éditez le fichier ~/conf/regex-urlfilter.txt et modifier la configuration existante par:
-^(https|telnet|file|ftp|mailto):# skip some suffixes-\.(swf|SWF|doc|DOC|mp3|MP3|WMV|wmv|txt|TXT|rtf|RTF|avi|AVI|m3u|M3U|flv|FLV|WAV|wav|mp4|MP4|avi|AVI|rss|RSS|xml|XML|pdf|PDF|js|JS|gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$# skip URLs containing certain characters as probable queries, etc.-[?*!@=]# allow urls in foofactory.fi domain+^http://([a-z0-9]*\.)*apache.org/ # deny anything else-.
• Créez ensuite un dossier urls dans le dossier d'installation de Nutch, puis un fichier urls.txt dans ce dossier pour y mettre les Hyperliens: mkdir /usr/lib/nutch/urls echo "http://lucene.apache.org/nutch/" > urls/urls.txt
• Puis exécutez ses commandes une après l'autre dans le dossier racine de Nutch:◦ bin/nutch inject crawl/crawldb urls◦ bin/nutch generate crawl/crawldb crawl/segments◦ export SEGMENT=crawl/segments/`ls -tr crawl/segments|tail -1`◦ bin/nutch fetch $SEGMENT -noParsing◦ bin/nutch parse $SEGMENT◦ bin/nutch updatedb crawl/crawldb $SEGMENT -filter -normalize◦ bin/nutch invertlinks crawl/linkdb -dir crawl/segments◦ bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb
crawl/linkdb crawl/segments/*
Enfin, pour lancer vos recherches, allez à la page http://127.0.0.1:8983/solr/admin dans votre navigateur web ou directement sur cette adresse http://127.0.0.1:8983/solr/nutch/?q=solr&version=2.2&start=0&rows=10&indent=on&wt=json