8
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.

Installation Et Configuration De Nutch

Embed Size (px)

DESCRIPTION

Installation Et Configuration De Nutch sous ubuntu

Citation preview

Page 1: Installation Et Configuration De Nutch

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.

Page 2: Installation Et Configuration De Nutch

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

Page 3: Installation Et Configuration De Nutch

• À 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/

Page 4: Installation Et Configuration De Nutch

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>

Page 5: Installation Et Configuration De Nutch

<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/

Page 6: Installation Et Configuration De 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.

Page 7: Installation Et Configuration De Nutch

• 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&lt;-1 5&lt;-2 6&lt;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>

Page 8: Installation Et Configuration De Nutch

</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&amp;version=2.2&amp;start=0&amp;rows=10&amp;indent=on&amp;wt=json