1. Trang chủ
  2. » Luận Văn - Báo Cáo

LUẬN văn kỹ THUẬT PHẦN mềm segmentation des mots et modélisation de textes vietnamiens en modèle de programmation mapreduce dans le nuage informatique

66 121 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 2,63 MB

Nội dung

Donc, cette thèse va étudier la programmation en MapReduce avec Hadoop pour modélisation des textes en modèle d’espace vectoriel et le modèle de fréquence sur la base de nuage informatiq

Trang 1

Département de Technologie de logiciel

Faculté des Technologies de l’information

Mémoire présenté pour l’obtention du diplôme d’ingénieur en informatique

Juillet 2013

 NGUYEN Ngoc Thanh, 2013

Trang 3

Tuteur: Prof.TRẦN Cao Đệ - Auteur: NGUYỄN Ngọc Thành

de MapReduce et faire élastiquement le groupe des ordinateurs d’Hadoop Donc, cette thèse va étudier la programmation en MapReduce avec Hadoop pour modélisation des textes en modèle d’espace vectoriel et le modèle de fréquence sur

la base de nuage informatique d’Openstack et le projet de Savanna

Mots – Clés : modélisation des textes, modèle d’espace vectoriel, modèle

de fréquence, MapReduce, Hadoop, nuage informatique, Openstack, Savanna Openstack

Trang 4

ABSTRACT

Text modeling is a preprocessing step which is very important in different domains such as textual data exploitation and natural language processing Currently, there are many models for the text modeling We can see now some models such as vector space model and frequency model that are simple and efficient However, in the era of big data, we can’t realize the modeling of texts with the sequent processing The large data processing exceeds a capacity of a computer and requires a cluster of computers, means organizing a computation on tens, hundreds or thousands of computers Therefore, distributed processing models become very important Typically, that is the MapReduce model and an actual installation is Hadoop In addition, the Openstack and Savanna project open source cloud operating system will optimize hardware resources and elasticize the Hadoop cluster of computers This thesis will study the MapReduce programming model with Hadoop to model texts by the vector space model and the frequency model on the Openstack and Savanna project cloud computing basis

Keywords: text modeling, vector space model, frequency model,

MapReduce, Hadoop, cloud computing, Openstack, Savanna Openstack

Trang 5

TABLE DES MATIÈRES

TABLE DES MATIÈRES 1

LISTE DE FIGURES 4

LISTE DES TABLEAUX 6

SYMBOLE ET ABRÉGEMENT DU MOT 7

REMERCIEMENTS 8

CHAPITRE 1 : GÉNÉRALITÉ 9

1.1 PROBLÉMATIQUE 9

1.2 RÉTROSPECTIVE DU PROBLÈME DE MODÉLISATION DES TEXTES 9

1.3 CONTENU DU PROBLÈME 10

1.4 OBJECTIF DU PROBLÈME 10

1.5 ÉCHELLE DU PROBLÈME 10

1.6 MÉTHODOLOGIE D’ÉTUDE ET SOLUTION 10

1.6.1 En théorie 10

1.6.2 En expérimentation 11

CHAPITRE 2 : THÉORIE DE BASE 12

2.1 MODÉLISATION DES TEXTES 12

2.2 MÉTHODES DE MODÉLISATION DES TEXTES EN VIETNAMIEN 12 2.2.1 Modèle logique 12

2.2.2 Modèle d’analyse syntaxique 13

2.2.3 Modèle d’espace vectoriel 14

2.2.4 Modèle Booléen 15

2.2.5 Modèle de fréquence 15

2.3 PROGRAMMATION EN MODÈLE DE MAPREDUCE 16

2.3.1 Idées principales de MapReduce 16

2.3.2 Principe de l’algorithme de MapReduce - Diviser pour mieux régner18 2.3.3 Origine de MapReduce 18

2.3.4 Structure de donnée dans MapReduce 19

2.3.5 Mapper et Reducer - Composants principaux de MapReduce 20

Trang 6

2.3.6 Partitioner et Combiner 21

2.3.7 Execution framework 22

2.3.8 Système de fichier distribué dans MapReduce 22

2.3.9 Principe de fonctionnement de MapReduce 23

2.4 CADRE D’HADOOP (HADOOP FRAMEWORK) 24

2.4.1 Introduction 24

2.4.2 Groupe des ordinateurs d’Hadoop (Hadoop Cluster) 24

2.4.3 Architecture d’HDFS 25

2.4.4 Modèle réalisé d’application de MapReduce dans Hadoop 26

2.5 NUAGE INFORMATIQUE 27

2.5.1 Concept 27

2.5.2 Point de vue sur le nuage informatique 27

2.5.3 Caractéristiques du nuage informatique 28

2.5.4 Avantage et Inconvénient du nuage informatique 29

2.5.5 Technologie virtuelle du nuage informatique 30

2.5.6 Modèles de service et de déploiement 31

2.6 SYSTÈME D’EXPLOITATION DE NUAGE DE SOURCE OUVERT D’OPENSTACK 34

2.6.1 L’infrastructure de calcul d’OpenStack (Nova) 35

2.6.2 Le service d’image d’OpenStack (Glance) 36

2.6.3 L’infrastructure de stockage d’OpenStack (Swift) 36

2.6.4 Le service d’identité d’OpenStack (Keystone) 37

2.6.5 L’interface administratif d’OpenStack (Horizon) 37

2.7 PROJET DE SAVANNA 37

2.7.1 Concept 37

2.7.2 Communication entre le projet de Savanna et les composants d’Openstack 38

2.7.3 Composants de l’architecture de Savanna 38

CHAPITRE 3 : SEGMENTATION EN MOTS ET DE MODÉLISATION DES TEXTES 40

3.1 INTRODUCTION 40

3.2 DES ÉTAPES POUR RÉALISER LE TRAVAIL DE MAPREDUCE 42

Trang 7

3.3 TRAVAIL DE MAPREDUCE 1 42

3.3.1 Problème à résoudre 42

3.3.2 Méthode à résoudre 42

3.4 TRAVAIL DE MAPREDUCE 2 46

3.4.1 Problème à résoudre 46

3.4.2 Méthode à résoudre 46

3.5 TRAVAIL DE MAPREDUCE 3 49

3.5.1 Problème à résoudre 49

3.5.2 Méthode à résoudre 49

3.6 INITIALISATION ET CONFIGURATION LE SYSTÈME D’EXPLOITATION DE NUAGE DE SOURCE OUVERT D’OPENSTACK ET LE PROJET DE SAVANNA POUR FONCTIONNER CE LOGICIEL 54

3.7 RÉSULTAT EXPÉRIMENTAL 56

3.7.1 Résultat expérimental de la segmentation des mots, des méthodes de suppression des mots arrêtés et de la modélisation des textes en modèle d’espace vectoriel 56

3.7.2 Résultat expérimental de la modélisation des textes avec un grand volume de donnée en modèle de programmation de MapReduce sur un groupe des ordinateurs d’Hadoop (Hadoop Cluster) 57

CHAPITRE 4 : CONCLUSION ET SUGGESTION DE DEVELOPPEMENT 59

4.1 RÉSULTAT OBTENU 59

4.1.1 En produit de logiciel 59

4.1.2 En connaissance obtenue 59

4.2 SUGGESTION DE DEVELOPPEMENT 60

RÉFÉRENCES 61

Trang 8

LISTE DE FIGURES

Figure 2.2.3.1 : Des vecteurs de texte dans l’espace bidimensionnel 14

Figure 2.3.1.1: Scale « out », not « up » 17

Figure 2.3.2.1: Diviser pour mieux régner 18

Figure 2.3.3.1 : Modèle programmation fonctionnelle 19

Figure 2.3.5.1 : Deux composants Mapper et Reducer 20

Figure 2.3.6.1 : Deux composants Partitioner et Combiner 21

Figure 2.3.9.1: Principe de fonctionnement de MapReduce 23

Figure 2.4.2.1: Groupe des ordinateurs d’Hadoop (Hadoop Cluster) 24

Figure 2.4.3.1 : Architecture d’HDFS 25

Figure 2.4.4.1 : Modèle réalisé d’application de MapReduce dans Hadoop 26

Figure 2.5.1.1 : Nuage informatique 27

Figure 2.5.3.3.1 : Utilisation de ressource commune 28

Figure 2.5.5.1 : Technologie virtuelle du nuage informatique 30

Figure 2.5.5.2 : Technologie virtuelle de système d’exploitation 31

Figure 2.5.5.3 : Technologie virtuelle de matériel 31

Figure 2.5.6.1 : Modèles de service et de déploiement 31

Figure 2.5.6.1.1 : Trois modèles de service du nuage informatique 32

Figure 2.6.1 : Architecture d’Openstack 35

Figure 2.7.2.1 : Communication entre le projet de Savanna et les composants d’Openstack 38

Figure 2.7.3.1 : Composants de l’architecture de Savanna 39

Figure 3.1.1: Processus de la segmentation et modélisation des textes 40

Figure 3.1.2 : La modélisation des textes en modèle MapReduce 41

Figure 3.2.1 : Les étapes pour réaliser le travail de MapReduce 42

Figure 3.3.2.1 : Diagramme d’algorithme du travail de MapReduce 1 43

Figure 3.3.2.2.1 : Diagramme d’algorithme de Mapper 1 44

Figure 3.3.2.3.1 : Diagramme d’algorithme de Reducer 1 45

Figure 3.4.2.1 : Diagramme d’algorithme du travail de MapReduce 2 46

Figure 3.4.2.2.1 : Diagramme d’algorithme de Mapper 2 47

Figure 3.4.2.3.1 : Diagramme d’algorithme de Reducer 2 48

Trang 9

Figure 3.5.2.1 : Diagramme d’algorithme du travail de MapReduce 3 50

Figure 3.5.2.1.1 : Diagramme d’algorithme de Mapper 3 50

Figure 3.5.2.3.1 : Diagramme d’algorithme de Reducer 3.1 52

Figure 3.5.2.3.1 : Diagramme d’algorithme de Reducer 3.2 53

Figure 3.6.1 : Modèle de nuage informatique pour fonctionner le logiciel 55

Figure 3.7.2.1 : Temps d’exécution de la modélisation des textes avec un grand volume de donnée sur un groupe des ordinateurs d’Hadoop 57

Trang 10

LISTE DES TABLEAUX

Tableau 2.2.1.1: Modélisation en modèle logique 1 12

Tableau 2.2.1.2 : Modélisation en modèle logique 2 13

Tableau 2.2.2.1 : Modélisation en modèle d’analyse syntaxique 14

Tableau 2.2.3.1 : Modélisation en modèle d’espace vectoriel 14

Tableau 2.2.4.1 : Modélisation en modèle de Boolean 15

Figure 3.7.1.1: Résultat expérimental de la modélisation des textes 1 56

Figure 3.7.1.2 : Résultat expérimental de la modélisation des textes 2 56

Figure 3.7.1.3 : Résultat expérimental de la modélisation des textes 3 57

Figure 3.7.2.2 : Comparaison de temps d’exécution entre 58

Standalone Mode et Pseudo-Distributed Mode 58

Trang 11

SYMBOLE ET ABRÉGEMENT DU MOT

API : Application Programming Interface

DF : Document Frequency

DFS : Distributed File System

GUI : Graphic User Interface

HDFS : Hadoop Distributed File System

HPC : High Performance Computing

IaaS : Infrastructure as a Service

IDF : Inverse Document Frequency

PaaS: Platform as a Service

Trang 12

REMERCIEMENTS

Je tiens à exprimer mes sincères gratitudes à Monsieur TRAN Cao De, mon tuteur de thèse qui m’a fourni des nouvelles connaissances, m’a mobilisé et m’a aidé de tout cœur à résoudre des difficultés que j’ai rencontrées au cours de la réalisation de mon mémoire

Je tiens à remercier sincèrement Monsieur BUI Vo Quoc Bao qui m’a mobilisé et m’a aidé avec l’enthousiasme à résoudre des difficultés pour installer

un nuage informatique et des connaissances de réseaux concernés

Je remercie les professeurs de la faculté de Technologie d’Information et de Communication qui non seulement m’ont guidé avec l’enthousiasme dans mes études en informatique, mais m’ont donné des conseils précieux Grâce à leur aide,

je peux accomplir bien mon programme d’études en complétant ce mémoire Je les souhaite de la santé et du succès dans la vie

Je voudrais exprimer mes sincères gratitudes à mes parents qui m’ont éduqués et créé les meilleures conditions pour que je puisse étudier et cultiver mon vertu Ils m’ont encouragé à passer toutes les difficultés dans la vie

Mes remerciements vont à mes amis de ma classe J’ai une pensée pour vous et les années passées ensembles

Avec mes sincères remerciements

Trang 13

CHAPITRE 1 : GÉNÉRALITÉ

1.1 PROBLÉMATIQUE

De nos jours, avec le développement impétueux de la technologie de l’information et de l’Internet entraîne le nombre d’utilisateur d’Internet et d’ordinateur est de plus en plus élevé Et bien sûr, la conséquence de cela est un grand volume de données généré et pose des défis dans le stockage et le traitement

En effet, il y a beaucoup de problèmes de traitement de grandes données comme

la classification des textes, l’exploitation de donnée textuelle et le traitement de langue naturelle, dans lesquels il y a la modélisation des textes La modélisation des textes est une étape de prétraitement qui est très important, on ne peut pas résoudre les problèmes mentionnés ci-dessus s'il n'y a pas de modélisation des textes Actuellement, il y a beaucoup de modèles pour modélisation des textes Toutefois, le modèle d’espace vectoriel et le modèle de fréquence sont bien simples et efficaces Donc, la question posée est la construction d'un système automatique de modélisation des textes Cependant, on ne peut pas sauvegarder un très grand volume de donnée sur un seul disque dur et le traiter en manière de lecture/écriture séquentielle car il faut perdre beaucoup de temps C’est pourquoi,

on doit sauvegarder ce très grand volume de donnée sur beaucoup de disques durs

et le traiter parallèlement par beaucoup d’ordinateurs sur ces disques durs Alors,

ce mémoire va étudier le modèle de programmation de MapReduce et le cadre d’Hadoop pour résoudre de ce problème Mais, le cadre d’Hadoop est construit afin de déployer un groupe des ordinateurs qui est basé sur le matériel commun (commodity hardware) C’est pourquoi, l’endommagement est fréquent et on doit configurer le groupe des ordinateurs d’Hadoop à la main quand on ajouter un ordinateur à ce groupe Mais, tout est résolu si on déploie le groupe des ordinateurs d’Hadoop sur la plate-forme de nuage informatique Avec le nuage informatique,

on peut créer un groupe des ordinateurs virtuels d’Hadoop plutôt que un groupe des ordinateurs physiques d’Hadoop C’est pourquoi, l’endommagement est diminué En plus, on peut ajouter ou réduire des ordinateurs à sortir du groupe des ordinateurs d’Hadoop à la demande Cela est complètement élastique et automatique Donc, ce mémoire va aussi étudier le système d’exploitation de nuage de source ouvert d’OpenStack et le projet de Savanna afin de déployer un groupe des ordinateurs virtuels d’Hadoop pour modélisation des textes en modèle d’espace vectoriel et modèle de fréquence

1.2 RÉTROSPECTIVE DU PROBLÈME DE MODÉLISATION DES TEXTES

Maintenant, on utilise souvent des modèles représentés pour résoudre la plupart de problème concernant le texte Après des textes sont modelés, les textes deviennent une structure de données intuitive, simple et peut traiter C’est pourquoi, les modèles est de plus en plus développé En effet, il y a beaucoup de

Trang 14

modèles représentés comme le modèle logique, le modèle d’analyse syntaxique, le modèle Booléen Les modèles représentés traditionnels comme le modèle d’espace vectoriel, le modèle de fréquence sont les plus populaire modèles Ces modèles sont très simples et efficaces, ils représentent des textes comme le vecteur caractéristique des termes qui apparaissent dans tous les textes Le poids de la caractéristique est calculé souvent par la mesure de TF*IDF En outre, il y a le nouveau modèle comme le modèle de graphique Ce modèle peut fournir des informations importantes comme l’ordre apparu des mots dans un texte, la position apparu des mots dans un texte qui sont ignorés dans le modèle d’espace vectoriel

1.3 CONTENU DU PROBLÈME

˗ L’ordre des étapes de modélisation des textes (segmentation des mots  suppression des mots arrêtés (stop words)  choix d’un modèle représenté pour modélisation des textes)

˗ Des méthodes pour suppression des mots arrêtés

˗ Des modèles représentés pour modélisation des textes

˗ Le traitement un très grand volume de donnée en modèle de MapReduce, cadre d’Hadoop

˗ La technologie de nuage informatique et l’application

˗ L’étude du système d’exploitation de nuage de source ouvert d’OpenStack

et le projet de Savanna

˗ La manière pour créer un nuage informatique privé

˗ La manière pour déployer un groupe des ordinateurs virtuels d’Hadoop sur

un nuage informatique privé

Trang 15

+ Le modèle de programmation de MapReduce

+ Le cadre d’Hadoop pour créer un groupe des ordinateurs d’Hadoop + Le nuage informatique

+ Le système d’exploitation de nuage de source ouvert d’Openstack pour créer un nuage informatique privé afin de déployer ce groupe des ordinateurs virtuels d’Hadoop

1.6.2 En expérimentation

˗ Je dois faire :

+ Le prétraitement des textes

 Utilisez le logiciel vnTokenizer pour segmentation des mots

 Supprimez des mots arrêtés basés sur une liste de mots arrêtés Vietnamien

+ Installez l’algorithme TF-IDF pour suppression des mots d’arrêt (stop words)

+ La modélisation des textes

 Installez l’algorithme de modélisation des textes en modèle d’espace vectoriel et du modèle de fréquence

+ Installation d’environnement fonctionné

 Installez un nuage informatique privé en logiciel d’OpenStack

 Installez un groupe des ordinateurs virtuels d’Hadoop en projet de Savanna

Trang 16

CHAPITRE 2 : THÉORIE DE BASE

2.1 MODÉLISATION DES TEXTES

˗ C’est une étape de prétraitement important pour l’exploitation de donnée textuelle et le traitement de langue naturelle Modélisation des textes signifient à représenter un ensemble des textes sans structure en structure

de données intuitive, simple et peut traiter comme un vecteur, un graphique

… Après, il peut résoudre les problèmes mentionnées ci-dessus en l’utilisation des opérations sur ces structure de données intuitive Donc, la partie suivante va étudier les méthodes de modélisation des textes en vietnamien

2.2 MÉTHODES DE MODÉLISATION DES TEXTES EN VIETNAMIEN 2.2.1 Modèle logique

˗ Pour ce modèle, on dénombre des mots significatifs dans chaque texte Les mots significatifs sont les mots qui contiennent des informations principales

du texte sauvegardé et quand on voit ces mots, on peut connaître le sujet du texte

˗ Après ce travail, on a l’ensemble des mots significatifs des textes Ensuite, chaque mot significatif, on détermine son nombre ordinal de position apparu dans les textes contenus

˗ Par exemple, on a deux textes suivants : texte01.txt, texte02.txt

texte01.txt : « Cộng hòa xã hội chủ nghĩa Việt Nam » texte02.txt : « Đất nước Việt Nam »

˗ La modélisation des textes suivant :

Trang 17

Texte

Mot significatif

Nom du texte et position apparu

Tableau 2.2.1.2 : Modélisation en modèle logique 2

(Document de référence : Luận văn tốt nghiệp – Nguyễn Việt Cường – Đại học Công Nghệ - Đại học Quốc Gia Hà Nội)

2.2.2 Modèle d’analyse syntaxique

˗ Dans ce modèle, chaque texte doit être analysé et renvoie des informations sur les sujets du texte Ensuite, on va indexer les sujets de chaque texte Les textes sont gérés via ces sujets

˗ Par exemple, on a deux textes : texte01.txt, texte02.txt

texte01.txt : « Cộng hòa xã hội chủ nghĩa Việt Nam » texte02.txt : « CNTT ngày càng phát triển »

˗ L’analyse syntaxique des textes suivant :

+ Supposé que :

 texte01.txt parle de deux sujets : sujet « Société », sujet

« Politique »

 Le sujet « Société » contient les mots : « xã hội »

 Le sujet « Politique » contient les mots : « Cộng hòa », « chủ nghĩa »

 texte02.txt parle de sujet : sujet « Technologie »

 Le sujet « Technologie » contient les mots : « CNTT »

˗ La modélisation des textes suivant :

Trang 18

Tableau 2.2.2.1 : Modélisation en modèle d’analyse syntaxique

(Document de référence : Luận văn tốt nghiệp – Nguyễn Việt Cường – Đại học Công Nghệ - Đại học Quốc Gia Hà Nội)

2.2.3 Modèle d’espace vectoriel

˗ Ce modèle est simple, efficace et le plus populaire modèle Dans ce modèle, chaque texte est modélisé en un vecteur Chaque composante du vecteur est

un mot-clé distinct dans l’ensemble de texte entré et est assigné une valeur

de fonction f pour montrer la densité apparu du mot dans le texte

Figure 2.2.3.1 : Des vecteurs de texte dans l’espace bidimensionnel

˗ Par exemple, supposons qu’un texte est modélisé par un vecteur V (v1, v2,…, vn) Là-dedans, vi est la fréquence du mot-clé ordinal i dans le texte

On a deux textes : texte01.txt, texte02.txt

texte01.txt : « CNTT ngày càng phát triển » texte02.txt : « Đất nước Việt Nam »

˗ La modélisation des textes est comme le suivant :

Tableau 2.2.3.1 : Modélisation en modèle d’espace vectoriel

˗ En plus, dans ce modèle, la relation entre des textes est calculée sur les vecteurs représentés donc c’est très efficace Spécialement, les recherches

texte 1

texte 2

texte 3

texte 4

Trang 19

sur la relation «similaire» entre les sites web (une des relations les plus typiques entre les pages Web) sont basées sur la représentation du modèle vectoriel

(Document de référence : Luận văn tốt nghiệp – Nguyễn Việt Cường – Đại học Công Nghệ - Đại học Quốc Gia Hà Nội)

˗ Par exemple, on a deux textes : texte01.txt, texte02.txt

texte01.txt : « Tôi yêu quê hương » texte02.txt : « Đất nước Việt Nam »

˗ La modélisation des textes suivant :

Tableau 2.2.4.1 : Modélisation en modèle de Boolean

(Document de référence : Luận văn tốt nghiệp – Nguyễn Việt Cường – Đại học Công Nghệ - Đại học Quốc Gia Hà Nội)

2.2.5 Modèle de fréquence

Pour ce modèle, la matrice W = {w ij} est déterminée par plusieurs façons en basant

sur la fréquence de mots:

2.2.5.1 Méthode basée sur la fréquence des mots-clés (TF – Term Frequency)

w ij = fij

w ij = 1 + log (fij)

𝒘𝒊𝒋 = √𝒇𝒊𝒋

Trang 20

Là-dedans, w ij est le poids du mot-clé t i dans le texte d j f ij est le nombre

d’occurrence du mot t i dans le texte d j

2.2.5.2 Méthode basée sur l’inverse de fréquence de texte (IDF – Inverse Document Frequency)

mot-˗ Le poids w ij représente l'importance du mot-clé t i dans le texte d j Si t i

apparaît dans moins de textes, cela signifie qu’il est important de distinguer

le texte d j avec les autres

2.2.5.3 Méthode TF*IDF

[𝟏 + 𝐥𝐨𝐠⁡(𝒇𝒊𝒋)]𝐥𝐨𝐠⁡(𝒎

𝒉𝒊) Si 𝒇𝒊𝒋 ≥ 𝟏 wij =

0 si inversement

C’est le modèle qui associe des bons points de la méthode TF et de la

méthode IDF Le poids w ij est calculé par le nombre d’occurrence du mot t i dans

le texte d j et la rare mesure du mot-clé ti dans l’ensemble de texte

(Document de référence : Luận văn tốt nghiệp – Nguyễn Việt Cường – Đại học Công Nghệ - Đại học Quốc Gia Hà Nội)

2.3 PROGRAMMATION EN MODÈLE DE MAPREDUCE

MapReduce est un modèle de programmation présenté par Google pour le traitement et la génération un ensemble de grande donnée sur des groupes des ordinateurs (clusters)

2.3.1 Idées principales de MapReduce

˗ Scale « out », not « up » (Élargissez pas de mise à niveau) : Pour augmenter

la capacité de traitement, on augmente souvent le nombre de serveurs usuels (low-end server) Donc, cette solution est plus économique car elle utilise les serveurs disponibles et ajoute des autres serveurs tandis que la solution

de mise à niveau peut devoir acheter tous les serveurs nouveaux En plus,

le prix d’un serveur spécifique (high-end server) est plus beaucoup cher qu’un groupe des serveurs usuels pour une capacité de traitement égale

Trang 21

Figure 2.3.1.1: Scale « out », not « up »

˗ Assume failures are commun (Assumez les échecs sont commun) :

l’augmentation de nombre de serveurs dans un groupe des serveurs (cluster), alors des erreurs sont fréquent Le modèle de MapReduce a des mécanismes automatiques pour traiter des erreurs comme un redémarrage des tâches sur des différents nœuds, un envoi des messages aux nœuds pour obtenir des informations nécessaires de la réalisation de tâche …

˗ Move processing to the data (Déplacez le traitement aux données) : Dans

les systèmes traditionnels (High Performance Computing - HPC), les nœuds

de calcul et les nœuds de stockage sont connectés via une connexion de grande vitesse C’est pourquoi, cela entraîne le phénomène de Bottleneck pour des travails ont des grandes données car il faut déplacer les données aux nœuds de calcul via le réseau Donc, dans le modèle de MapReduce, il

va déplacer le traitement à la donnée Dans l’architecture de MapReduce, les nœuds de calcul et les nœuds de donnée sont mis ensemble Alors, on peut fonctionner directement des logiciels sur les nœuds de calcul et les données locales

˗ Process data sequentially and avoid random access (traitez des données

séquentielles et évitez des aléatoires accès) : Pour augmenter la vitesse de traitement du travail MapReduce traite séquentiellement l’ensemble de donnée entrée

˗ Hide system-level details from the application developer (cachez le

détail de système pour les développeurs) : MapReduce fournit des modèles

de programmation abstractive et des interfaces simples et prédéfinis

˗ Seamless scalability : Dans le modèle de MapReduce, on peut ajouter

facilement des ordinateurs à un groupe des ordinateurs pour élargir ce groupe

Trang 22

2.3.2 Principe de l’algorithme de MapReduce - Diviser pour mieux régner

˗ La partition du grand problème en des plus petits problèmes

˗ Des petits problèmes sont traités parallèlement et indépendamment

˗ L’intégration des résultats intermédiaires en un résultat final

˗ Des travailleurs peuvent être :

+ Threads dans core de processeur

+ Cores dans multi-core de processeur

+ Multiple processeurs dans un ordinateur

˗ Multiple ordinateurs dans cluster

Figure 2.3.2.1: Diviser pour mieux régner

2.3.3 Origine de MapReduce

˗ L’origine de MapReduce est la programmation fonctionnelle Elle a deux fonctions de Map et de Fold La fonction de Map prend une fonction f qui

a un paramètre et applique cette fonction à tous les éléments dans la liste

La fonction de Fold prend une fonction g qui a deux paramètres et une valeur initiale La fonction g applique d’abord aux la valeur initiale et le premier élément dans le liste, le résultat est sauvegardé dans une variable intermédiaire pour l’utilisation du seconde élément

Trang 23

Figure 2.3.3.1 : Modèle programmation fonctionnelle

˗ La fonction de Map dans MapReduce est correspondant avec la fonction de Map, la fonction de Reduce est correspondant avec la fonction de Fold

2.3.4 Structure de donnée dans MapReduce

˗ La structure de donnée élémentaire : des paires clé-valeur

˗ Les types de donnée des paires clé-valeur: integers, float, strings, raw bytes

ou le type de donnée défini de l’utilisateur

˗ Il y a un problème posé : la détermination la structure clé-valeur dans l’ensemble de donnée à traiter Par exemple, dans l’ensemble de site web, des key peuvent être des URL et des valeurs peuvent être des contenus de

la page de HTML

Trang 24

2.3.5 Mapper et Reducer - Composants principaux de MapReduce

Figure 2.3.5.1 : Deux composants Mapper et Reducer

˗ Dans MapReduce, les programmateurs définissent une classe Mapper et une classe Reducer et deux fonctions principales selon ordre dans Mapper et Reducer

+ Map (k1, v1)  [(k2, v2)]

+ Reduce (k2, [v2])  [(k3, v3)]

˗ Le symbole […] est une liste des paires clé-valeur ou une liste des valeurs Des fichiers de donnée entrée d’un travail de MapReduce sont sauvegardés sur le système de fichier distribué Mapper est appliqué à tous les paires clé-valeur pour créer les paires clé-valeur intermédiaires Reducer est appliqué

à tous les valeurs qui ont key intermédiaire identique pour créer des paires clé-valeur de l’output Entre la phase Map et la phase Reduce, il y a un traitement distribué des paires clé-valeur intermédiaire basées sur key Ces paires clé-valeur intermédiaire sont envoyé à chaque Reducer selon ordre qui est arrangé par key Les paires clé-valeur de l’output de Reducer sont sauvegardées sur le système de fichier distribué L’output final est r fichiers sur le système de fichier distribué, là-dedans r est le nombre de reducer Ces

r fichiers peuvent être l’input d’un autre travail de MapReduce

Trang 25

2.3.6 Partitioner et Combiner

Figure 2.3.6.1 : Deux composants Partitioner et Combiner

˗ Partitioner répartit les clé-valeur intermédiaires après la phase Map et envoie ces paires clé-valeur à Reducer En d'autres termes, Partitioner indique la tâche que ces paires clé-valeur intermédiaires doivent être envoyées à là Partitioner utilise une fonction d’hachage pour répartir les paires clé-valeur intermédiaires à Reducer Mais, Partititoner ne s’intéresse pas aux valeurs dans les paires clé-valeur, c’est pourquoi, il est possible qu’il y a des situations de répartition de donnée sur Reducer

˗ Combiner est un composant optimisé qui augmente des données transporteurs entre Mapper et Reducer Combiner regarde comme un petit Reducer (mini-reducer) qui est mis à l’output de Mapper et devant la phase

Trang 26

de mélange et d’arrangement (Shuffle and Sort) Chaque Combiner fonctionne séparément pour un Mapper, c’est pourquoi, ces Combiner n’accède pas l’output d’un autre Mapper Combiner ramasse des paires clé-valeur de l’output de Mapper qui ont un key identique en une paire clé-valeur avec ce key et une liste de la valeur

2.3.7 Execution framework

˗ Un programme de MapReduce (un travail de MapReduce) contient les composants emballés :

+ Les codes de classe Mapper et de classe Reducer

+ Les codes de Partitioner et Combiner

+ Les paramètres de configuration (comme la position des fichiers de l’input et de l’output)

˗ Pour fonctionner un programme de MapReduce, le programmeur donne ce programme au nœud géré de tâche dans le groupe des ordinateurs (cluster)

et le cadre d’exécution (execution framework) va traiter tous les autres travails

˗ Les fonctions principales du cadre d’exécution (execution framework) : + Scheduling : Chaque programme de MapReduce est divisé en des plus

petites tâches Scheduling maintient une file d’attente (queue) de tâche

et assigne les tâches aux nœuds pour traiter qui ont des ressources disponibles

+ Data/Code co-location (donnée/code co-localisation): L’idée de

MapReduce est une transposition de code, ce n’est pas une transposition

de donnée Mais, dans des cas, on doit transporter la donnée au code Donc, Scheduler doit démarrer une tâche au nœud qui a le bloc de donnée nécessaire pour cette tâche, sinon peut-être, une tâche va être démarrée à l’autre nœud et la donnée de cette tâche est transmise via le réseau à ce nœud

+ Synchronization (synchronisation) : synchronisation est des

mécanismes pour des processus en cours peut-être joindre comme le partage de résultat intermédiaire ou l’échange d’information d’état Dans MapReduce, synchronisation est entre la phase Map et la phase Reduce, c’est « shuffle et sort »

+ Error and fault handling (erreur et traitement des défauts) :

MapReduce est projeté pour des groupes des ordinateurs usuels (cluster), c’est pourquoi, des erreurs se passent fréquemment Donc, MapReduce a des mécanismes pour traiter ces erreurs

2.3.8 Système de fichier distribué dans MapReduce

L’idée principale du système de fichier distribué est une partition de donnée

en des blocs et une sauvegarde ces blocs dans un disque dur local des nœuds dans

un groupe des ordinateurs (cluster), la valeur par défaut est trois copies Chaque

Trang 27

bloc de donnée est souvent 64MB Le système de fichier distribué utilise l’architecture de Maître-Esclave (Master-Slave), Maître maintient l’espace de nom

de fichier (métadonnée, la structure de répertoire, la cartographie (mapping) de fichier à des blocs de données, la position des blocs, le droit d’accès), Esclave gère des blocs concrets Nous allons étudier plus minutieusement sur le système de fichier distribué dans la partie de HDFS d’Hadoop

2.3.9 Principe de fonctionnement de MapReduce

Figure 2.3.9.1: Principe de fonctionnement de MapReduce

D’abord, le programme du client et la donnée d’input sont soumis à JobTracker Après JobTracker détermine ce travail Le programme du client va diviser la donnée d’input en des divisions (split) et écrire ces divisions à DFS Ensuite, JobScheduler dans JobTracker va diviser le travail de MapReduce du client en des tâches et prendre la position des divisions (split) pour fonctionnement parallèle Chaque division, JobScheduler va créer une tâche de Map, donc le nombre de tâche de Map est égal le nombre de division Mais, le nombre de tâche

de Reduce est détermine par le programme du client Après JobTracker initialise des informations nécessaires pour le travail JobTracker va attendre pour recevoir heartbeat de TaskTracker, ensuite JobTracker va allouer des tâches et la position

Trang 28

de division de donnée correspondante pour fonctionnement à ce TaskTracker Si TaskTracker reçoit une tâche de Map, TaskTracker va copier la division de donnée (split) correspondante à la mémoire de RAM pour traitement La donnée d’output

de la tâche de Map va être combinée et être arrangée et être écrit aux régions (region) dans le disque dur local de l’ordinateur de ce TaskTracker en une fonction d’hachage Si TaskTracker reçoit une tâche de Reduce, la donnée d’input est une liste des positions d’une région (region), TaskTracker va copier la donnée dans chaque région à la mémoire, après TaskTracker va mélanger et arranger ces données dans un fichier de donnée intermédiaire pour traitement La donnée d’output de la tâche de Reduce va être écrite à un fichier et être sauvegardée à DFS Après TaskTracker accomplit la tâche de Reduce, TaskTracker va annoncer l’état accompli à JobTracker Si cette tâche de Reduce est la tâche finale, donc JobTracker va annoncer l’état accompli du travail de MapReduce à l’utilisateur

2.4 CADRE D’HADOOP (HADOOP FRAMEWORK)

2.4.1 Introduction

Apache Hadoop est un cadre de source ouvert qui est écrit en Java par Doug Cutting Hadoop est utilisé pour fonctionner des logiciels appliqués avec un grand volume de donnée avec la rapidité, l’exactitude, l’efficacité en façon de sauvegarder et de calculer indépendamment des données sur beaucoup de nœuds

de matériel usuel Hadoop contient deux composants principaux, ce sont un système de fichier distribué d’HDFS pour sauvegarder des données dans beaucoup

de nœuds et l’installation de modèle de MapReduce pour traiter des données

2.4.2 Groupe des ordinateurs d’Hadoop (Hadoop Cluster)

Figure 2.4.2.1: Groupe des ordinateurs d’Hadoop (Hadoop Cluster)

Trang 29

˗ NameNode et DataNode sont responsable de fonctionner le système de fichier distribué d’HDFS :

+ NameNode est le maître du système d’HDFS qui gère des métadonnées comme l'espace du système de fichiers, une liste des fichiers, des blocs d’ID correspondants de chaque fichier, une liste des DataNode, l’état d’opération des DataNode via des Hearbeat

+ DataNode contient des blocs de donnée réel des fichiers sur HDFS, est responsable de répondre des demandes de lecture/écriture de donnée du client, des demandes de création/suppression des blocs de donnée de NameNode

˗ JobTracker et TaskTracker est responsable de maintenir le mécanisme de MapReduce, reçoivent et réalisent des travails de MapReduce :

+ JobTracker reçoit des travails de MapReduce du client, après il divise

ce travail en des tâches et assigne les tâches aux TaskTracker JobTracker gère aussi une liste des TaskTracker et l’état de d’opération

de tâche des TaskTracker via des Hearbeat

+ TaskTracker reçoit des tâches à partir de JobTracker pour réalisation afin d’envoyer des états réalises de tâche à JobTracker

˗ SecondaryNameNode maintient une copie des métadonnées sur NameNode pour rétablir NameNode si NameNode est endommagé

2.4.3 Architecture d’HDFS

Figure 2.4.3.1 : Architecture d’HDFS

Nom de fichier

ID de Bloc, lieu sauvegardé du Bloc

Trang 30

HDFS est similaire des autres systèmes de fichier HDFS maintient une structure d’arbre des fichiers et des dossiers que les fichiers sont des nœuds de feuille Dans HDFS, chaque fichier est divisé en un ou plusieurs blocs, chaque bloc

a un ID de bloc pour identification Les blocs d’un fichier ont ensemble une taille, c’est la taille de bloc de ce fichier Chaque d’un fichier est sauvegardé en plusieurs copies différents D’abord l’application envoie une demande de nom de fichier à NameNode, NameNode va renvoyer ID de bloc et le lieu sauvegardé du bloc

à l’application Ensuite, l’application va envoyer ID de bloc à DataNode, DataNode va renvoyer la donnée de bloc à l’application Le processus d’envoi et

de réception est réalisé entre l’application et DataNode sans NameNode

2.4.4 Modèle réalisé d’application de MapReduce dans Hadoop

Figure 2.4.4.1 : Modèle réalisé d’application de MapReduce dans Hadoop

D’abord, l’ensemble de donnée d’input sur HDFS est divisé en des blocs (la taille de défaut est 64MB), ces blocs sont envoyés à InputFormat, InputFormat

va marquer des paires de clé-valeur dans chaque bloc Ensuite, le composant de

Trang 31

Record Reader (RR) lit des paires de clé-valeur pour l’input des Mapper Les paires

de clé-valeur à l’output des Mapper sont envoyées à Partitioner pour diviser en des partitions (région) qui sont sauvegardées dans le disque dur local de ces Mapper, chaque partition est correspondant avec un Reducer Des paires de clé-valeur sont arrangées et sont envoyées aux Reducer Les paires de clé-valeur à l’output des Reducer sont écrits à HDFS par OutputFormat

2.5 NUAGE INFORMATIQUE

2.5.1 Concept

Le nuage informatique est un modèle distribué et consommé des types de

la ressource virtuelle d’IT comme un service élastique suivant le besoin de l’utilisateur sur l’environnement d’Internet

Figure 2.5.1.1 : Nuage informatique

2.5.2 Point de vue sur le nuage informatique

Le point de vue de l'utilisateur : les utilisateurs n’ont pas besoin de s’intéresser à l’infrastructure de matériel au-dessous Ils s’intéressent seulement à

la qualité de service du fournisseur et aux travails qu’ils doivent faire

Trang 32

2.5.3 Caractéristiques du nuage informatique

2.5.3.1 Self-service suivant le besoin (On-demand self-service)

Chaque fois à un besoin, l’utilisateur envoie sa demande via le site web du fournisseur de service, le système du fournisseur de service va répondre la demande de l’utilisateur C’est pourquoi, l’utilisateur n’a pas besoin de prendre contact directement avec le fournisseur de service

2.5.3.2 Accès au réseau large (Broad network access)

Le nuage informatique fourni des services via l’environnement d’Internet

En raison de cela, il suffit d’avoir l’Internet, on peut utiliser les services En plus,

le nuage informatique ne requiert pas la capacité de traitement forte au client C’est pourquoi, l’utilisateur peut accéder en équipement portable comme le téléphone portable, PDA, laptop Donc, les utilisateurs ne dépendront pas de lieu Ils peuvent accéder les services à partir de n'importe ó, à n’importe quel moment

2.5.3.3 Utilisation de ressource commune (Resource pooling)

Les ressources fournies basent sur le modèle « multi-tenant » Dans ce modèle, les ressources sont allouées dynamiquement suivant le besoin des utilisateurs Quand le besoin d’un utilisateur est diminué, il tire le meilleur parti des ressources superflues pour servir un autre utilisateur Par exemple, le client A loue 10 CPU chaque jour de 7h à 11h, le client B loue aussi 10 CPU similaire chaque jour de 13h à 17h, donc deux clients peut utiliser en commun ces 10 CPU

Figure 2.5.3.3.1 : Utilisation de ressource commune

Trang 33

2.5.3.4 Élasticité rapide (Rapid elasticity)

˗ C’est le plus spécial, typique, important caractère du nuage informatique Il peut élargir et réduire automatiquement le système suivant le besoin de l’utilisateur Par exemple, un client loue un serveur contenu 10 CPU S’il y

a peu d’accès, il suffit de 5 CPU, alors le système géré du fournisseur de service éteindra 5 CPU superflu Le client ne paie pas des frais pour ces CPU superflu Ces 5 CPU fourniront aux autres clients qui ont des besoins Quand la qualité d’accès est augmentée, alors le système géré du fournisseur de service ajoutera des CPU, si le besoin dépasse 10 CPU, alors

le client doit payer des frais pour la partie dépassé

˗ L’avantage pour le fournisseur de service : L’élasticité utilise exhaustif des ressources superflues et sert beaucoup d’utilisateurs

˗ L’avantage pour les utilisateurs : L’élasticité diminue des frais superflus car les utilisateurs paient seulement des frais pour les ressources utilisées

2.5.3.5 Service mesurée (Measured service)

Le système de nuage informatique contrơle et optimise automatiquement l’utilisation de ressource (la capacité sauvegardée, CPU, …) La qualité de la ressource utilisée est espionnée, est contrơlée, est rapportée clairement pour le fournisseur de service et l’utilisateur

2.5.4 Avantage et Inconvénient du nuage informatique

2.5.4.1 Avantage :

˗ La vitesse de traitement est très rapide, le cỏt n’est pas cher

˗ Le cỏt de l'investissement initial sur les infrastructures de matériel, les machines et les forces humaines gérées de système diminuent au minimum

˗ Il ne dépend plus de l'équipement et l'emplacement géographique

˗ La capacité élastique facile aide à répondre tous les besoin des utilisateurs

˗ La surveillance de l’utilisation de ressource est facile et claire

2.5.4.2 Inconvénient

˗ Le problème privé

˗ La disponibilité

˗ La capacité perdue de donnée

˗ La capacité portable de donnée et la propriété

˗ La sécurité

Ngày đăng: 24/03/2018, 01:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Dan C. Marinescu. Cloud Computing: Theory and Practice. University of Central Florida, Orlando, FL 32816, USA, 2012 Sách, tạp chí
Tiêu đề: Cloud Computing: Theory and Practice
[2] Atul Jha, Johnson D, Kiran Murari, Murthy Raju, Vivek Cherian, Yogesh Girikumar. OpenStack Beginner's Guide v3.0, CSS Corp, 2012 Sách, tạp chí
Tiêu đề: OpenStack Beginner's Guide v3.0
[3] Jimmy Lin and Chris Dyer. Data-Intensive Text Processing with MapReduce. University of Maryland, College Park, 2010 Sách, tạp chí
Tiêu đề: Data-Intensive Text Processing with MapReduce
[4] Chuck Lam. Hadoop in Action. Manning Publications, 2010 Sách, tạp chí
Tiêu đề: Hadoop in Action
[5] Srinath Perera and Thilina Gunarathne. Hadoop MapReduce Cookbook. Packt Publishing, 2013 Sách, tạp chí
Tiêu đề: Hadoop MapReduce Cookbook
[6] Donald Miner and Adam Shook. MapReduce Design Patterns. O’REILLY, 2012 Sách, tạp chí
Tiêu đề: MapReduce Design Patterns
[7] Tom White. Hadoop: The Definitive Guide – Third Edition. O’REILLY, 2012 Sách, tạp chí
Tiêu đề: Hadoop: The Definitive Guide – Third Edition
[9] BinLi and Yuan Guoyong. Improvement of TF-IDF Algorithm Based on Hadoop Framework. Jinan University, Guangzhou - China, 2012 Sách, tạp chí
Tiêu đề: Improvement of TF-IDF Algorithm Based on Hadoop Framework
[10] Alex Holmes. Hadoop in Practice. Manning Shelterisland, 2012 Sách, tạp chí
Tiêu đề: Hadoop in Practice
[11] Pietro Michiardi. Tutorial: MapReduce Theory and Practice of Data- intensive Applications. Eurecom, 2011 Sách, tạp chí
Tiêu đề: Tutorial: MapReduce Theory and Practice of Data-intensive Applications
[12] IBM ISV and Developer Relations. Foundations of IBM Cloud Computing Architecture. IBM Corporation, 2010 Sách, tạp chí
Tiêu đề: Foundations of IBM Cloud Computing Architecture
[13] Nguyễn Văn Diệt. Xử lý dữ liệu phân tán với mapreduce và xây dựng ứng dụng minh họa. Trường Đại Học Nha Trang, 2011 Sách, tạp chí
Tiêu đề: Xử lý dữ liệu phân tán với mapreduce và xây dựng ứng dụng minh họa
[15] Nguyễn Thị Châm Anh. Tìm hiểu và ứng dụng công nghệ Cloud computing với nền tảng Google app engine. Trường Đại học Công nghệ, 2012 Sách, tạp chí
Tiêu đề: Tìm hiểu và ứng dụng công nghệ Cloud computing với nền tảng Google app engine
[16] Trần Văn Bách. Cơ sở dữ liệu phân tán và ứng dụng trong máy tìm kiếm. Trường Đại học Công nghệ, 2010 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu phân tán và ứng dụng trong máy tìm kiếm
[17] Đặng Vũ Đình Duy và Nguyễn Tấn Dương. Tìm hiểu nền tảng phát triển ứng dụng phân tán với hadoop và áp dụng cho search engine phân tán. Trường Đại Học Khoa Học Tự Nhiên, 2010 Sách, tạp chí
Tiêu đề: ìm hiểu nền tảng phát triển ứng dụng phân tán với hadoop và áp dụng cho search engine phân tán
[18] Nguyễn Trần Thiên Thanh và Trần Khải Hoàng. Tìm hiểu các hướng tiếp cận bài toán phân loại văn bản và xây dựng phần mềm phân loại tin tức báo điện tử. Trường Đại Học Khoa Học Tự Nhiên, 2005 Sách, tạp chí
Tiêu đề: Tìm hiểu các hướng tiếp cận bài toán phân loại văn bản và xây dựng phần mềm phân loại tin tức báo điện tử
[14] Vũ Minh Ngọc. Tìm hiểu Hadoop, MapReduce, và các bài toán ứng dụng Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w