Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Cours Java pour débuter avec le Framework Apache Nutch [Eng]

Cours Java pour débuter avec le Framework Apache Nutch [Eng]
Participez au vote ☆☆☆☆☆★★★★★

Cours Java pour débuter avec le Framework Apache Nutch [Eng]

Projet Apache Nutch

Fondée en 2003 par Doug Cutting, le créateur de Lucene, et Mike Cafarella

Projet Apache depuis 2004 (sous-projet de Lucene)

Spin-offs:

  • Réduire la carte et FS distribué → Hadoop
  • Détection et analyse du type de contenu → Tika

De nombreuses installations en fonctionnement, principalement la recherche verticale

Collections typiquement 1 million - 200 millions de documents

Web sous forme de graphe dirigé

Nodes (vertices): URL-s en tant qu'identificateurs uniques

Bords (liens): liens hypertexte tels que <a href="targetUrl"/>

Etiquettes de bord: <a href=".."> texte d'ancrage </a>

Souvent représenté sous forme de listes de contiguïté

Traversée: suivez les bords, largeur d'abord, profondeur d'abord, aléatoire

Nutch caractéristiques en un coup d'oeil

Base de données de pages et base de données de liens (graphique Web)

À base de plugins, hautement modulaire:

- La plupart des comportements peuvent être modifiés via des plugins

Analyseur distribué multiprotocole, multithread

Traitement de contenu à base de plugin (analyse, filtrage)

Contrôles frontaliers rampants robustes

Infrastructure de traitement de données évolutive

- Traitement de carte-réduction

Indexeur de texte intégral et moteur de recherche

- Utiliser Lucene ou Solr

- Prise en charge de la recherche distribuée

API robuste et options d'intégration

Fondation Hadoop

Abstraction du système de fichiers

  • FS locale ou
  • FS distribué

- également Amazon S3, Kosmos et d’autres implémentations FS.

Traitement de réduction de carte

  • Actuellement au cœur des algorithmes de Nutch
  • Les tâches de traitement sont exécutées sous la forme d'une ou plusieurs tâches mapreduce
  • Données gérées sous Hadoop MapFile-s / SequenceFile-s
  • Mises à jour massives très efficaces
  • Petites mises à jour coûteuses

- Les données Hadoop sont immuables, une fois créées

- Les mises à jour sont vraiment fusionnées et remplacées

…… …

Tessons de Nutch (a.k.a. «segments»)

Unité de travail (batch) - traitement plus facile des jeux de données volumineux

Espace réservé de commodité, utilisant des noms de répertoire prédéfinis

Unité de déploiement sur l'infrastructure de recherche

Peut inclure des index Lucene par partage

Une fois terminés, ils ne sont pratiquement pas modifiables

- Pas de mises à jour en place du contenu, ni de remplacement de contenu obsolète

Périodiquement éliminé

……

Cycle de vie et fragments d'URL

injecté /

découvert

prévu

pour aller chercher

S1

cherché /

à jour

prévu

pour aller chercher

cherché /

à jour

Une vision accélérée de la réalité

Buts:

  • Nouvel index → ​​synchro avec le taux de changement réel
  • Minimiser la relecture → ne pas extraire les pages non modifiées

Chaque page peut nécessiter son propre calendrier d’exploration. Gestion des fragments:

  • La page peut être présente dans de nombreux fragments, mais seul l'enregistrement le plus récent est valide.
  • Inconvénient de mettre à jour sur place, il suffit de marquer comme supprimé
  • Éliminer les vieux fragments et forcer la récupération des pages restantes

Rampant frontière

Aucun catalogue de pages Web faisant autorité

Les moteurs de recherche découvrent leur vision de l'univers Web

- Commencez à partir de “liste de semences”

- Suivre (marcher) des liens externes (utiles? Intéressants?)

Beaucoup de dangers de simplement errer

- explosion ou effondrement de la frontière

- collecte de contenu indésirable (spam, courrier indésirable, offensant)

Contrôler la frontière rampante

Plugins de filtrage d'URL

- Liste blanche, liste noire, regex

- Peut utiliser des ressources externes

(DB-s, services ...)

Plugins normalisateur d'URL

- Résolution des éléments de chemin relatif

- URL «équivalentes»

Contrôles supplémentaires utilisant des plugins de scoring

- priorité, sélection / blocage des métadonnées

Pièges à chenilles - difficile!

- Semence de statistiques de domaine / hôte / chemin

Large vs crawling ciblé

Différences:

  • Peu de différence technique dans la configuration
  • Grande différence dans les opérations, la maintenance et la qualité

Large rampant:

- Frontière rampante (presque) illimitée

- Risque élevé de spam et de contenu indésirable

- La «politesse» est un facteur limitant très important

- Considérations sur la bande passante et le DNS

Analyse ciblée (verticale ou entreprise):

- frontière rampante limitée

- La bande passante ou la politesse ne sont souvent pas un problème

- Faible risque de spam et de contenu indésirable

Recherche verticale et entreprise

Recherche verticale

  • Gamme de sites "de référence" sélectionnés
  • Contrôle robuste de la frontière rampante
  • post-traitement de contenu étendu
  • décisions de classement prises par les entreprises

Recherche d'entreprise

  • Variété de sources de données et de formats de données
  • Frontière rampante bien définie et limitée
  • Intégration avec des sources de données internes
  • peu de danger de spam
  • Le score de type PageRank fonctionne généralement mal

…

Installation simple et en cours d'exécution

Vous avez déjà Java 5+, non?

Obtenez une version 1.0 ou une version nocturne (assez stable)

La configuration de recherche simple utilise l'application Web Tomcat pour la recherche

Script bash en ligne de commande: bin / nutch

  • Utilisateurs Windows: obtenez Cygwin
  • Première version d’une console d’interface utilisateur Web
  • Surveillance Web Hadoop

Configuration: fichiers

Modifier la configuration dans conf / nutch-site.xml

  • Recherchez les valeurs par défaut et les documents dans nutch-default.xml.
  • Vous DEVEZ au moins renseigner le nom de votre agent

Configuration active des plugins

Propriétés par plugin

Fichiers de configuration externes

  • regex-urlfilter.xml
  • regex-normalize.xml
  • parse-plugins.xml: mappage du type MIME au plugin

Plugins Nutch

Extensions basées sur des plugins pour:

  • Planification de l'exploration
  • Filtrage et normalisation d'URL
  • Protocole pour obtenir le contenu
  • analyse du contenu
  • Analyse de texte (tokenization)
  • Signature de page (pour détecter les quasi-doublons)
  • Filtres d'indexation (champs d'indexation et métadonnées)
  • génération et mise en évidence d’extraits de code
  • Scoring et classement
  • Traduction et extension de requêtes (utilisateur → Lucene)

Flux de travail principal de Nutch

Injecter: création initiale de CrawlDB

  • Insérer des URL de départ
  • Initial LinkDB est vide

Générer la liste de lecture d'un nouveau fragment

Récupérer le contenu brut

Analyser le contenu (découverte des liens externes)

Mettre à jour CrawlDB à partir de fragments

Mettre à jour LinkDB à partir de fragments

Fragments d'index

……

Workflow: générer des listes d'extraction

Que chercher ensuite?

  • La largeur d'abord - important en raison des limites de «politesse»
  • Expiré (plus long que fetchTime + fetchInterval)
  • Hautement classé (PageRank)
  • Nouvellement ajouté

Fetchlist génération:

  • “topN” - sélectionne les meilleurs candidats

- Priorité basée sur de nombreux facteurs, connectable

Calendrier de récupération adaptatif

  • Détecter le taux de changement et le moment du changement
  • Détecter le contenu non modifié

- Hmm, et comment reconnaître ça? → signatures de pages approximatives (détection presque en double)

Flux de travail: aller chercher

Multi-protocole: HTTP (s), FTP, fichier: //, etc ...

Coordonne plusieurs threads accédant au même hôte

  • problèmes de «politesse» contre efficacité de l'exploration
  • Hôte: un nom IP ou DNS?
  • Redirections: devrait suivre immédiatement? Quel genre?

Autres problèmes de netiquette:

  • robots.txt: chemins non autorisés, délai d'analyse

Préparation à l'analyse:

  • Problèmes de détection du type de contenu
  • L’analyse est généralement exécutée séparément (ressources avides et parfois instables)

…

Workflow: traitement du contenu

Les plugins de protocole récupèrent le contenu sous forme d'octets simples + métadonnées au niveau du protocole (par exemple, en-têtes HTTP)

Plugins Parse

  • Le contenu est analysé par des analyseurs spécifiques au type MIME.
  • Le contenu est analysé dans parseData (titre, liens externes, autres métadonnées) et parseText (contenu en texte brut).

Nutch supporte de nombreux formats de fichiers populaires

…

Flux de travail: inversion de lien

Les pages ont des liens sortants (outlinks)

… Je sais où je veux en venir

Question: qui pointe vers moi?

… Je ne sais pas, il n'y a pas de catalogue de pages

… PERSONNE le sait avec certitude non plus!

En degré indique l'importance de la page

Le texte d'ancrage fournit des informations sémantiques importantes

Réponse partielle: inversez les liens sortants que je connais et groupe par cible…

Flux de travail: déduplication

La même page peut être présente dans de nombreux fragments

  • Les versions obsolètes dans les anciens fragments
  • Pages en miroir ou équivalentes (a.com → www.a.com)

Beaucoup d'autres pages sont presque identiques

  • Différences liées aux modèles (bannières, date du jour)
  • Changements de police / mise en page, reformulation mineure

Hmm… qu'est-ce qu'un changement significatif ???

  • Problème délicat! Indice: quel est le contenu de la page?

Détection et suppression presque en double

  • Nutch utilise des signatures de page approximatives (empreintes digitales)
  • Les doublons ne sont marqués que comme supprimés

...

Configuration de recherche

La syntaxe de Nutch est limitée - exprès!

  • Certaines requêtes sont coûteuses, par exemple wildcard menant, très long
  • Certaines requêtes peuvent nécessiter une extension implicite (cachée)

Plugins de requête

  • De la requête utilisateur à la requête Lucene / Solr

Requête de l'utilisateur: recherche sur le Web

+ (url: web ^ 4.0 ancre: web ^ 2.0 contenu: titre web: web ^ 1.5 hôte: web ^ 2.0)

+ (url: search ^ 4.0 ancre: search ^ 2.0 contenu: titre de la recherche: search ^ 1.5

hôte: recherche ^ 2.0) url: "recherche sur le Web" ~ 10 ^ 4.0 ancre: "recherche sur le Web" ~ 4 ^ 2.0

contenu: "recherche sur le Web" ~ 10 titre: "recherche sur le Web" ~ 10 ^ 1.5

hôte: "recherche sur le Web" ~ 10 ^ 2.0

Configuration du serveur de recherche

  • Recherche simple vs distribué
  • Utiliser Nutch Searcher, Solr ou un mélange
  • Actuellement, pas de calcul global IDF

...

Déploiement: serveur unique

Le déploiement le plus simple mais le plus limité

Stockage centralisé, traitement centralisé

Hadoop LocalFS et LocalJobTracker

Supprimez nutch.war dans Tomcat / webapps et pointez sur des fragments

Nutch sur un cluster Hadoop

Suppose qu'un cluster Hadoop est opérationnel

…

qui est couvert ailleurs

Construisez le pot nutch.job et utilisez-le comme d'habitude: bin / hadoop jar nutch.job <className> <args ...>

Remarque: la configuration Nutch est à l'intérieur de nutch.job

- Lorsque vous le changez, vous devez reconstruire le fichier d'emploi.

La recherche n'est pas un travail de réduction de carte - souvent sur un groupe de machines séparé

Decouvrir ces documents

  • Cours de formation pour s’initier avec Apache Nutch

    Cours de formation pour s’initier avec Apache Nutch

  • Formation avancé sur l’utilisation du Framework Apache Nutch pour Java [Eng]

    Formation avancé sur l’utilisation du Framework Apache Nutch pour Java [Eng]

  • Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

    Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

  • Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

    Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

  • Guide de démarrage avec le Framework Apache HBase

    Guide de démarrage avec le Framework Apache HBase

  • Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

    Cours détaillé avec exemples sur le Framework JAVA Apache Velocity pour débutant

  • Formation sur le développement web avec le Framework Apache Cocoon

    Formation sur le développement web avec le Framework Apache Cocoon

  • Tutoriel sur la sécurité des applications Web JAVA avec Apache Shiro [Eng]

    Tutoriel sur la sécurité des applications Web JAVA avec Apache Shiro [Eng]

Articles connexes

  • Exercice HTML: Débuter avec HTML
  • Exercice JAVA palindrôme - string
  • Cours de soutien scolaire bénévole - Informations et conseils
  • 16 meilleurs IDE / EDI pour en Django Python (Comparatif)
  • Tuto Python & Django : créer une page web
  • Exercice liste chainée générique JAVA - Structures de données abstraites
  • Java VS Python : Quel langage est le meilleur ?
  • Placement d'Or : Règles et astuces pour réussir son investissement
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02