Conception et développement d’un moteur de recherche et
d’indexation des documents basés sur les techniques de Big
Data. OBJECTIF GLOBAL DU PROJET ET ARCHITECTURE :
Le choix des outils :
Nous voulons réaliser un moteur de recherche permettant a n importe qui rechercher
n importe quel document sur le web .La recherche et la réponse doit être en temps réel et il va falloir tenir compte du volume de données a traiter d’où l intégration des techniques Big Data. 1 – Apache Kafka : C est un outil permettant la gestion des flux de données en temps réel. Le temps réel consiste a traiter les données au même moment quelles nous parviennent en minimisant la latence(tenir compte de l’échelle de temps). Kafka dispose de deux éléments le rendant intéressant à manipuler a savoir : ---- Une file d’attente : permettant d’ajouter des messages avec une latence faible ; conserve l’ordre d’arrivés des messages; stocker de manière fiable les données qui doivent être redondées et distribuées , ----Un system de traitement de flux de données : permettant de traiter les données de manière distribués pour pouvoir passer a l’échelle avec le volume de données; permettant d’avoir au system de stockage pour stocker les résultat des traitement détecter les erreurs de traitements. 2 –ElasticSearch : C est un outil permettant de mettre en place un system complexe. Il permet de stocker les informations dans un premier temps et aller les récupérer dans un second temps. Donc va nous faciliter la tache dans la réalisation du moteur de recherche. ElasticSearch stocke les informations de manière non -structurées et offre la possibilités de le déployer sur plusieurs machines afin d’optimiser le résultat et fonctionne avec Java. Il jouera le rôle d’une Base de données orienté recherche. 3-Hadoop HDFS : Le choix du System de gestion de fichier de HADOOP est sans regret car il propose pas mal de fonctionnalités. Premièrement dans notre futur system il portera aide a ElasticSearch qui sera incapable de traiter les données a niveau donné(ZETA-OCTETS de données). Hadoop permet de réaliser des calculs distribuez sur des données massives(Big Data). Il permet ainsi de répondre aux questions telles que : comment stocker ces données ? les filtrer? les analyser? Ce modelé distribués permet un plus grande tolérance aux pannes : lorsqu' un nœud du cluster subit une panne, il suffit d’affecter la tache a un autre nœud du cluster. Le Framework Hadoop est composé : - d’une architecture permettant l orchestration de MapReduce - d’ un Système de Gestion de fichier (HDFS) qui est : distribués répliqués optimisés L’architecture de stockage est une architecture Maitre-Esclaves. Le Nœud Maitre : contient et stocke tous les noms et blocs des fichiers ainsi que leur localisation dans le cluster. Les autres nœuds sont pour le stockage physique des données en tant que tels. Ils ont pour rôle la gestion des opérations locales (création , suppression et réplications des blocs ) sur des instructions du maitre. Le jobTracker : est un processus maitre qui va charger de l ensemble de ressources du système Le taskTracker : est une unité de calcul du cluster. Il assure en lançant une JVM , l’exécution Et le suivi des taches MapReduce s’exécutant sur son nœud. Il dispose ainsi d’un composant YARN permettant de gérer le cluster . Il est Open Source par rapport aux autres et assez documenté. Ceci explique notre choix sur Hadoop HDFS.