I. Résumé
Mon stage de fin d'étude effectué au sein de
CAPGEMINI durant environ quatre mois s'inscrit dans le cadre d'un projet de
recherche & développement et veille technologique portant sur les
tendances et concepts technologiques Big Data. Les Big Data sont des
méthodes et des technologies pour des environnements évolutifs,
pour l'intégration, le stockage et l'analyse des données
multi-structurées (structurées, semi structurées et non
structurées). L'objectif de ce stage a consisté à monter
en compétence sur les technologies Big Data afin d'élaborer une
présentation commerciale des ces technologies, puis de faire des tests
techniques des composants de l'écosystème Hadoop (
framework
Java
libre, destiné
à faciliter la création d'applications
distribuées et
scalables) et
réaliser un démonstrateur Big Data illustrant des cas
d'utilisation du Big Data.
Ce rapport a pour but de donner un aperçu du stage que
j'ai effectué au sein de CAPGEMINI. On y trouve, dans une
première partie, une présentation de l'entreprise permettant de
dégager des informations sur l'environnement du travail au sein de cette
société. Dans la seconde partie, avant de présenter les
travaux effectués, la mission du stage et l'environnement technique de
travail sont présentés. Enfin la dernière partie est
consacrée au bilan du stage et la conclusion.
Remerciements
Ce rapport est le résultat d'une période
d'immersion dans le milieu professionnel. En préambule, je souhaite
adresser mes remerciements aux personnes que j'ai côtoyées durant
cette période et qui ont ainsi contribué à
l'élaboration de ce rapport.
Tout d'abord de grands remerciements à Monsieur Didier
CHEVRERE, mon tuteur d'entreprise, pour son aide et pour le temps qu'il a bien
voulu me consacrer.
Je remercie également Monsieur Pascal ESPINOUS et
Monsieur Olivier FIQUET qui ont su m'aiguiller vers leurs collègues
spécialisés dans certaines technologies que je devais utiliser
dans le cadre de mon travail ; je les remercie également pour leur
réactivité. Je tiens aussi à exprimer ma reconnaissance
à Kévin DEVAUX pour le support technique qu'il m'a apporté
durant ce stage.
J'aimerais également remercier toutes les personnes de
l'open space que j'ai rencontrées lors de la période de stage et
plus particulièrement à Monsieur Patrick GUYARD pour ses
connaissances de ma structure d'accueil et ses conseils.
Je remercie Ameline Bermond, la stagiaire qui m'a
précédé sur ce sujet de stage, pour sa
disponibilité et sa gentillesse.
J'exprime ma gratitude à toutes les personnes
rencontrées au sein de CAPGEMINI, qui ont accepté de m'apporter
un support et de répondre à mes questions avec gentillesse
malgré leur emploi de temps chargé.
J'adresse également mes remerciements à Monsieur
Jean Marie PINON, mon tuteur académique et tout le corps administratif
du mastère spécialisé informatique à l'INSA de
Lyon. Je remercie CAPGEMINI qui a m'a accordé cette opportunité
d'effectuer un stage en son sein.
Enfin, j'adresse mes sincères remerciements à
mes parents, ma fratrie et à tous mes proches et amis, qui m'ont
encouragé, aidé et soutenu durant cette année de
formation.
Que ceux-ci et ceux dont les noms n'y figurent pas, puissent
trouver l'expression de leur encouragement dans ce travail.
Sommaire
Résumé
I
Remerciements
II
Sommaire
III
Liste des abréviations
6
Introduction générale
7
I.
Présentation de l'entreprise et du contexte de stage
8
I.1 Présentation de L'entreprise
8
I.1.1 Historique et secteur
d'activité
8
I.1.2 Valeurs
9
I.1.3 Mission
10
I.1.4 Métiers et secteurs
d'activité
10
I.1.5 Partenariats et concurrence
11
I.1.6 Organisation
11
I.2 Contexte du stage
12
II.
Présentation de la mission lors du stage
14
II.1 Collecte et analyse de la
documentation
14
II.2 Tests techniques et montée en
compétence opérationnel
15
II.3 Réalisation de la plateforme de
démonstration
15
III. Les Big
Data
16
III.1 Présentation
16
III.2 Caractéristiques des Big
Data
16
III.3 Les Big Data en chiffres
16
III.4 Intérêts des Big Data
17
III.5 Enjeux des Big Data
17
III.5.1 Enjeux techniques
17
III.5.2 Enjeux économiques
17
III.5.3 Enjeux juridiques
18
III.6 Limites des Big Data
18
III.7 Paysage technologique des Big Data
19
III.7.1 Intégration
19
III.7.2 Stockage
20
III.7.3 Analyse
20
III.7.4 Restitution
21
III.8 Ecosystème Hadoop
21
III.8.1 Hadoop kernel
22
III.8.2 Composants Apache Hadoop
25
III.9 Solutions Big Data sur le
marché
27
IV. Solution mise
en place
29
IV.1 Choix de la solution et tests
techniques réalisés
29
IV.1.1 Architecture du cluster mise en
place
29
IV.1.2 Architectures des composants des
machines
30
IV.1.3 Déploiement de la
plateforme
32
IV.1.4 Tests techniques
réalisés
32
IV.2 Démonstrateur Big Data
38
IV.2.1 Création des jeux de
donnée de test
39
IV.2.2 Scénario d'exécution
des cas d'utilisation
40
IV.2.3 Création des programmes
MapReduce
42
IV.2.4 Restitution des données via
Hive
42
IV.2.5 Restitution des données via
QlikView
43
IV.3 Outils utilisés
46
V. Futur du Big
Data
48
VI. Bilan du
stage
49
VI.1 Planning prévisionnel
49
VI.2 Planning de réalisation
50
VI.3 Livrables
52
VI.4 Difficultés
rencontrées
52
VI.5 Solutions
53
VI.6 Projet big data
53
VI.7 Apport du stage
53
Conclusion
55
Références
bibliographiques
56
Liste des figures
57
Liste des tableaux
58
Liste des
abréviations
SOGETI : Société pour la
Gestion de l'Entreprise et Traitement de l'Information
ESN : Entreprise de Services du
Numérique
SSII : Société de Services
en Ingénierie Informatique
BPO : Business Process Outsourcing
(externalisation de processus métiers)
ALM : Application Lifecycle Management
CSD : Custom Software Development
PBS : Package Business Solution
ERP : Enterprise Resource Planning
(planification des ressources de l'entreprise)
CXP : Centre d'expertise des
logiciels
RFID : Radio Frequency Identification
(radio identification)
ETL : Extract, Transform and Load
EAI : Enterprise Application Integration
(Intégration d'applications d'entreprise)
EII : Enterprise Information
Integration
CRM : Customer Relationship Management
(gestion des relations avec les clients)
IDC :
International
Data Conseil
DSI :
Direction des Systèmes
d'Information
SQL : Structured Query Language
HDFS : Hadoop Distributed File System
SPOF : Single Point Of Failure
UDF : User Defined Function
UDAF : User Defined Aggregate Function
UDTF : User Defined Table Function
JDBC : Java DataBase Connectivity
ODBC : Open Database
Connectivity
CDH : Cloudera's Distribution including
apache Hadoop
SI : Système d'Information
POC : Proof Of Concept
API : Application Programming
Interface
R&D : Recherche et
Développement
II. Introduction
générale
Depuis les débuts d'internet jusqu'à 2003,
5 Exaoctets (1 exaoctet (Eo) =
1018 octets = 1 000 Po = 1 000 000 000 000 000 000 octets) de
données ont été générées. Avec la
venue du Web 2.0, la prolifération des réseaux sociaux, ...,
cette quantité de donnée était
générée en 2 jours. Actuellement, il
suffit de 10 minutes pour en produire autant. D'après
les prévisions, d'ici 2020 cette croissance sera supérieure
à 40 Zettaoctets
(1 zettaoctet (Zo) = 1021 octets =
1 000 Eo =
1 000 000 000 000 000 000 000 octets) et le
volume des données produites, diffusées et consommées en
l`espace d`une année, doublera tous les 2 ans.
Face à cette croissance exponentielle du volume de
données, les entreprises sont confrontées à certaines
problématiques qui sont celles de savoir comment collecter, stocker,
analyser et exploiter ces grands volumes de données pour créer de
la valeur ajoutée. Tout l'enjeu, pour les entreprises et les
administrations, consiste à ne pas passer à côté
d'informations précieuses noyées dans la masse. C'est là
qu'intervient la technologie du "Big Data", qui repose sur une
analyse très fine de masses de données.
Aujourd'hui, un fossé se creuse entre le potentiel
d'utilisation des données et l'utilisation actuelle. D'après
certaines sources, 23 % des données existantes
pourraient être valorisées, seulement 0,5% le
sont.
A l'heure où des technologies du Big Data sont en
gestation afin de répondre aux problématiques citées
ci-dessus, il est important pour les ESN qui veulent en tirer profit au moyen
de leur expertise, de faire d'ores et déjà de la veille
technologique. C'est dans ce contexte que ma mission dans le cadre du stage a
consisté à la réalisation d'un travail de Recherche &
Développement et de veille technologique des tendances et concepts
technologiques Big Data.
L'objectif était premièrement de monter en
compétence sur les technologies du Big Data afin de compléter la
documentation détaillée réutilisable à des fins de
présentation pour un client ou de formation interne. Le second objectif
était de réaliser une plateforme de démonstration en
exploitant les connaissances théoriques acquises afin de mettre en
oeuvre un cas d'utilisation du Big Data.
Ce travail permettra à CAPGEMINI de présenter
à ses clients des solutions (mises en oeuvre et expérimentions)
répondant à leurs besoins et donc il a la maîtrise de mise
en oeuvre de bout en bout et l'exploitation.
III. Présentation de l'entreprise et du contexte de
stage
III.1 Présentation de L'entreprise
III.1.1 Historique et
secteur d'activité
Crée en 1967 à Grenoble par Serge KAMPF sous le
nom SOGETI, CAPGEMINI est une ESN ex SSII. Depuis sa création, la
société à évolué à travers de
multiples acquisitions dans tous les secteurs d'activités liés
aux services informatiques comme la plupart de ses concurrents. Le groupe ne
cesse de se constituer, c'est ainsi qu'Euriware, filiale informatique du groupe
Areva sera probablement acquis par le groupe d'ici la fin de l'année
2013.
CAPGEMINI est la deuxième ESN en France. Ce classement
est réalisé sur la base du chiffre d'affaire (VISION IT
GROUP, 2013).
Le groupe Capgemini est divisé en trois
marques :
§ Capgemini Consulting : pour les
services de conseils.
§ Capgemini : pour les
intégrations de système et l'infogérance.
§ Sogeti : pour les services
informatiques de proximité.
Fort d'environ 125 000 collaborateurs et présent dans
44 pays, le Groupe a réalisé en 2012 un chiffre d'affaires de
10,264 milliards d'euros.
Figure 1 : Implantation de Capgemini dans le
monde
L'inde est le pays comptabilisant le plus grand nombre de
collaborateurs, devant la France qui vient en deuxième position.
III.1.2 Valeurs
Pour une culture de l'entreprise qui favorise un soutien
individuel et mutuel des collaborateurs et une véritable collaboration,
CAPGEMINI s'appui sur sept valeurs :
§ L'honnêteté, le refus de
toutes pratiques déloyales dans la conduite des affaires en vue
d'obtenir un contrat ou un avantage particulier
§ L'audace, le goût
d'entreprendre, de l'envie de prendre des risques et de s'engager, dans le
respect d'un principe général de prudence et de lucidité
sans lequel le manager audacieux peut se révéler dangereux
§ La confiance, elle implique la
volonté de responsabiliser les hommes et les équipes, et de
confronter les responsables aux effets de leurs actions et décisions. La
confiance implique également l'ouverture d'esprit et une grande
transparence dans la circulation de l'information
§ La liberté, ou encore la
créativité, l'innovation, l'indépendance d'esprit et le
respect des autres dans leurs cultures, leurs habitudes et leurs
différences, ce qui est indispensable dans un Groupe présent dans
plus d'une trentaine de pays et comptant plus d'une centaine de
nationalités différentes
§ La solidarité, la
capacité à partager solidairement les bons et les mauvais
moments
§ La simplicité, c'est la
discrétion, la modestie réelle, le bon sens, l'attention
portée aux autres et le soin mis à se faire comprendre d'eux,
c'est la franchise des relations dans le travail, la décontraction, le
sens de l'humour
§ Le plaisir, sans lequel tout projet
d'entreprise est difficile, voire impossible à réaliser.
III.1.3 Mission
Avec ses clients, CAPGEMINI conçoit et met en oeuvre
les solutions business et technologiques qui correspondent à leurs
besoins et leur apporte les résultats auxquels ils aspirent, c'est la
mission principale du groupe. CAPGEMINI permet à ses clients de
transformer leur organisation et d'améliorer leur performance dans
l'objectif de leur donner les moyens de réagir plus rapidement et plus
intuitivement aux évolutions du marché. Profondément
multiculturel, CAPGEMINI revendique un style de travail qui lui est propre, la
« Collaborative Business ExperienceTM »,
et s'appuie sur un mode de production mondialisé, le «
Rightshore® ». Ce style de travail consiste à
instaurer une collaboration au coeur l'exercice de ses activités, ainsi
les experts CAPGEMINI associent leurs forces à celles leurs
collaborateurs (clients) pour former une seule et même équipe.
III.1.4 Métiers
et secteurs d'activité
CAPGEMINI propose une large gamme de solutions et produits
liés à ses métiers et ses activités. Il
définit ses métiers en quatre grandes catégories :
§ Le consulting (conseil en management)
à travers CAPGEMINI Consulting : son rôle est d'aider les
chefs d'entreprise à identifier, structurer et mettre en oeuvre les
transformations qui amélioreront durablement leurs résultats et
leur compétitivité.
§ L'intégration des systèmes
: il s'agit de concevoir, développer et mettre en oeuvre tous
types de projets techniques comportant l'intégration de systèmes
complexes et le développement d'applications informatiques.
§ Les Services informatiques de
proximité à travers SOGETI : cette entité a pour
mission la fourniture de services informatiques répondant à des
besoins locaux en matière d'infrastructures, d'applications,
d'ingénierie, de tests et d'exploitation.
§ L'infogérance : il s'agit
de la prise en charge totale ou partielle du système d'information d'un
client (ou d'un regroupement de plusieurs clients) et des activités
métiers s'y rattachant (BPO) pour une durée moyenne de cinq ans,
mais qui peut aller jusqu'à dix ans, voire davantage.
Le portefeuille client de CAPGEMINI est reparti en en
différentes divisions opérationnelles qui couvrent les
différents secteurs d'activité, lesquels englobent le secteur
public, l'industrie, les services financiers, le commerce, la distribution et
le transport, l'énergie, la chimie, les
télécommunications, les médias et le divertissement.
III.1.5 Partenariats
et concurrence
Le groupe Capgemini a créé au cours de son
histoire des partenariats et des alliances stratégiques avec plusieurs
acteurs majeurs de l'informatique comme EMC², HP, IBM, Microsoft, Oracle,
Salesforce, SAP. Ces partenariats permettent à l'entreprise de placer
l'innovation au coeur de son activité avec pour objectif de stisfaire
ses clients.
Les concurrents du groupe Capgemini peuvent être
classés en trois catégories :
§ Les acteurs mondiaux qui comprennent
deux géants informatiques IBM et HP mais également des purs
acteurs de services informatiques tels que Accenture, CSC, Fujitsu ou NTT
Data.
§ Les acteurs offshore, essentiellement
d'origine indienne, qui sont des acteurs émergents des services
informatiques comme TCS, Infosys, Wipro, Cognizant ou HCL. Capgemini a
développé sa présence en Inde afin de contrer cette
concurrence et améliorer sa compétitivité.
§ Les acteurs régionaux qui sont
très nombreux mais qui n'ont généralement pas la
couverture géographique ou la profondeur de l'offre de Capgemini. En
Europe les plus importants sont Atos Origin, T-Systems, Siemens IT Services,
Indra et Steria, tandis qu'en Amérique du Nord, il s'agit de Lockheed
Martin, SAIC, CGI, Deloitte, Xerox.
III.1.6
Organisation
Le groupe Capgemini est constitué de cinq grandes
unités opérationnelles (Strategic Business Unit ou
« SBU ») différentes :
· Capgemini Consulting qui
délivre des services de conseil.
· Application Services qui se charge de
l'intégration de systèmes et la maintenance applicative et est
subdivisée en deux autres unités opérationnelles suivant
les régions géographiques :
o Application Services 1 (APPS1) pour l'Amérique du
Nord, le Royaume Uni et l'Asie/Pacifique (hors la Chine). Cette unité a
également la responsabilité mondiale du secteur des Services
Financiers.
o Application Services 2 (APPS2) pour la France, le Benelux,
les pays nordiques, l'Allemagne et l'Europe Centrale, l'Europe du Sud et
l'Amérique latine (hors Brésil).
· Infrastructure Services qui optimise
les infrastructures informatiques des entreprises clientes.
· Business Process Outsourcing (BPO) qui
propose une externalisation des services des entreprises clientes dans le
domaine de la finance/comptabilité, de la gestion de la chaîne
logistique (supply chain), de l'approvisionnement, de la gestion des
opérations clients, des services financiers et des ressources
humaines.
· Sogeti qui fournit des services de
proximité.
Figure 2 :
Organigramme des unités opérationnelles du groupe
Capgemini
Dans l'unité opérationnelle
« Application Services », il existe 4 divisions :
§ Services
§ Industries et Distribution
§ Télécom et Média
§ Aérospatiale et Défense
La division Industries et Distribution est elle-même
divisée en lignes de service ou Services Lines :
§ Application Lifecycle Management (ALM) : en charge
de la maintenance des solutions déployées chez les clients.
§ Custom Software Development (CSD) : en charge du
développement d'applications spécifiques adaptées aux
clients.
§ Package Business Solution (PBS) : en charge des ERP au
niveau fonctionnel et technique.
Durant mon stage, j'ai intégré la
société Capgemini au sein de l'unité opérationnelle
Application Services 2, dans la division Industries et Distribution et plus
précisément dans la partie Digital Industry de la ligne de
service Custom Software Development.
III.2 Contexte du stage
Dans un monde où la performance des entreprises devient
davantage synonyme de la maturité digitale, il faut prendre de l'avance
afin d'élaborer les solutions innovantes pouvant répondre aux
besoins sans cesse croissants de la clientèle, dans sa quête
perpétuelle de la performance. CAPGEMINI, en tant qu'un des leaders
nationaux et mondiaux des le domaine de services du numérique, anticipe
sur les éventuelles besoins clients en mettant en oeuvre des
technologies innovantes. C'est ainsi que les nouvelles solutions passent par
une étape de veille technologique où on s'informe sur les
technologies les plus récentes et la mise en oeuvre commerciale. Les Big
Data font donc partie des technologies récentes en cours de
gestation.
IV.
Présentation de la mission lors du stage
La mission du stage a débuté le 18 Juin 2013
pour prendre fin le 27 Septembre 2013. Au sein de l'équipe Digital
Industry rattaché au skil CSD de la division Industrie et distribution
de Lyon, ma mission consistait à :
§ Réaliser un travail de R&D et veille
technologique des tendances et concepts technologiques Big Data
§ Mettre en place les processus métiers Marketing
permettant la collecte, l'agrégation et l'exploitation des gros volumes
de données issus des usages digitaux
§ Mettre en place les processus métiers permettant
la collecte, l'agrégation et l'exploitation des gros volumes de
données issus de briques fondatrices du Legacy d'entreprise (ERP, CRM,
Supply Chain)
En intégrant le projet, une partie de la documentation
et des tests techniques avait déjà été
réalisée par la précédente stagiaire qui m'a
transmis ses compétences. Ma mission se résumait à prendre
connaissance du contexte du projet, des tâches déjà
effectuées ou non et de finaliser ces dernières. Les principaux
livrables étaient :
§ La documentation détaillée de
présentation des technologies Big Data
§ Les documents techniques des composants
déployés et des tests techniques réalisés
§ La réalisation d'une plateforme de
démonstration, mettant en oeuvre des cas d'utilisation du Big Data
La recherche et développement est un ensemble
d'activités entreprises de façon systématique dans
l'optique d'accroître des connaissances et l'utilisation de ces
connaissances pour de nouvelles applications, donc la réalisation
d'une initiative, d'un projet. Au sein de la R&D, on a plusieurs
tâches transversales dont la veille technologique, le
développement des technologies spécifiques et la protection des
innovations à l'aide des brevets. Les deux premières tâches
ont celles qui sont utilisées dans le cadre de ce projet. La veille
technologique consiste à s'informer systématiquement sur les
techniques les plus récentes et surtout sur leur mise en disposition
commerciale. Autrement dit, elle consiste à trouver les sources
d'informations pertinentes, puis analyser ces informations afin de mieux les
utiliser.
Pour parvenir à la réalisation de
différents livrables, il a fallut passer par différentes
étapes présentées ci-après.
IV.1 Collecte et analyse de la documentation
Aujourd'hui, ce ne sont pas des sources d'information qui
manquent, dans le monde virtuel, on peut penser aux sites des fournisseurs de
solutions, aux sites informatifs, aux divers blogs spécialisés,
aux livres blancs, etc. Cette étape a consisté à collecter
des informations sur internet et à parcourir de fond en comble toute la
documentation précédemment collectée, celle en cours de
production et celle que je devais rajouter. Je devrais également
m'intéresser aux solutions qui existent sur le marché et qui
répondent déjà aux problématiques des Big Data,
plus précisément la solution qui avait été
adopté pour la réalisation des tests techniques. Compte tenu du
fait que le monde du Big Data évolue sans cesse, il fallait aussi que je
me pencher sur les évolutions des versions des composants
précédemment utilisés. Après le parcours de la
documentation, a suivi l'analyse des informations afin d'extraire celles qui
était utiles pour la suite de mon travail.
IV.2 Tests techniques et montée en compétence
opérationnel
Après la collecte et l'analyse des informations, il
fallait passer à l'utilisation des informations extraites. Compte tenu
du fait qu'on ne dispose pas d'un temps infini pour monter en
compétence, il fallait être opérationnel le plus rapidement
possible pour avancer dans ma mission.
Ici, il fallait réaliser les tests des
fonctionnalités précédemment testées dans un nouvel
environnement (nouvelle version) tout en tenant compte des évolutions
apportées à l'ancienne version ; faire des tests techniques
qui n'avaient pas encore été faits et explorer les nouvelles
fonctionnalités.
IV.3 Réalisation de la plateforme de
démonstration
Cette étape devait s'appuyer sur les
précédentes. Elle devait me permettre de consolider les
connaissances acquises en mettant en oeuvre une plateforme de
démonstration.
V. Les Big Data
V.1
Présentation
Après le très en vogue "cloud computing", un
nouveau concept émerge dans le secteur informatique, celui du "Big
data". A l'origine du concept de "Big data" se trouve l'explosion du volume de
données informatiques, conséquence de la flambée de
l'usage d'Internet, au travers des réseaux sociaux, des appareils
mobiles, des objets connectés, etc.
Selon le CXP, les Big Data désignent des
méthodes et des technologies (pas seulement des outils) pour des
environnements évolutifs (augmentation du volume de données,
augmentation du nombre d'utilisateurs, augmentation de la complexité des
analyses, disponibilité rapide des données) pour
l'intégration, le stockage et l'analyse des données
multi-structurées (structurées, semi structurées et non
structurées).
V.2
Caractéristiques des Big Data
Le Big Data se caractérise par la problématique des
3V :
§ Volume, c'est le poids des
données à collecter. Confrontées à des contraintes
de stockage, les entreprises doivent aussi gérer le tsunami des
réseaux sociaux. La montée en puissance des réseaux
sociaux a accentué cette production de données.
§ Variété, l'origine
variée des sources de données qui sont
générées. premièrement, l'époque où
les entreprises s'appuyaient uniquement sur les informations qu'elles
détenaient dans leurs archives et leurs ordinateurs est révolue.
De plus en plus de données nécessaires à une parfaite
compréhension du marché sont produites par des tiers.
Deuxièmement, les sources se sont multipliées : banques de
données, sites, blogs, réseaux sociaux, terminaux
connectés comme les smartphones, puces RFID, capteurs, caméras...
Les appareils produisant et transmettant des données par l'Internet ou
d'autres réseaux sont partout, y compris dans des boîtiers aux
apparences anodines comme les compteurs électriques.
§ Vélocité, la vitesse
à laquelle les données sont traitées simultanément.
à l'ère d'internet et de l'information quasi instantanée,
les prises de décision doivent être rapides pour que l'entreprise
ne soit pas dépassée par ses concurrents. La
vélocité va du batch au temps réel.
A ces « 3V », les uns rajoutent la
visualisation des données qui permet d'analyser les
tendances ; les autres rajoutent la variabilité
pour exprimer le fait que l'on ne sait pas prévoir l'évolution
des types de données.
V.3 Les Big Data en
chiffres
Après le siècle du pétrole, nous entrons
dans l'ère de la donnée. Les chiffres ci-dessous permettent de
présenter la quantité de données
générées jusqu'ici et la croissance dans les prochaines
années.
« 12 zettaoctets de
données ont été créés dans le monde
en 2011 118 milliards
d'emails sont envoyés chaque
jour 235 téraoctets de
données ont été collectés
par The Library of Congress en avril
2011 30 fois plus de données seront
générées
d'ici 2020 Le télescope "Square
kilometers away" produira plus d'1 téraoctet de
données par minute en
2024 Twitter génère 7
téraoctets de données par
jour Facebook génère 10
téraoctets de données par jour
Facebook traite 50 milliards
de photos 30 milliards de contenus sont
échangés chaque mois sur Facebook »
(Saulem, Définition de Big Data trois V variété,
volume, vélocité - Le big data.htm, 2013)
Nous pouvons bien constater que nous nageons dans un
océan de donnée où le niveau de la mer augmente
rapidement.
V.4
Intérêts des Big Data
L'utilisation des Big Data pourrait impacter fortement le
monde de l'entreprise et ce de façon méliorative, ainsi les
entreprises pourront :
§ Améliorer la prise de décision
§ Réduire les coûts d'infrastructures
informatiques via l'utilisation des serveurs standards et des logiciels open
source
§ Développer la réactivité et
l'interactivité à l'égard des clients
§ Améliorer les performances
opérationnelles
Tout ce ci orientera les entreprises vers une économie
centrée sur la donnée.
V.5 Enjeux des Big
Data
Le Big Data apparaît comme le challenge technologique
des années 2010-2020. Dépassant les domaines techniques et
informatiques, le Big Data suscite un vif intérêt auprès
des politiciens, des scientifiques et des entreprises. Les enjeux du Big Data
touchent plusieurs secteurs d'activités.
V.5.1 Enjeux techniques
Les enjeux techniques s'articulent autour de
l'intégration, le stockage, l'analyse, l'archivage, l'organisation et la
protection des données.
V.5.2 Enjeux
économiques
D'après le cabinet de conseil dans le marketing IDC,
« le marché du Big Data représentera 24 milliards de
dollars e 2016, avec une part de stockage estimée à 1/3 de ce
montant » (Saulem, Enjeux économiques du Big Data
à l'échelle mondiale - Le big data.htm, 2013). Il va sans
dire que la « donnée » est le nouvel or noir du
siècle présent, les spécialistes s'accordent
déjà sur le fait que le Big Data sera l'arme économique
de demain pour les entreprises et se présentera comme un levier qui fera
la différence.
Les entreprises collectent de plus en plus d'information en
relation avec leurs activités (production, stockage, logistique, ventes,
clients, fournisseurs, partenaires, etc), toutes ces informations peuvent
être stockées et exploitées pour stimuler leur croissance.
Les Big Data permettent :
§ D'améliorer les stratégies marketing et
commerciale
§ D'améliorer et entretenir la relation client
§ De fidéliser la clientèle
§ De gagner de nouvelles parts de marché
§ De réduire les coûts logistiques
§ De favoriser la veille concurrentielle
Le client est un acteur majeur dans ce contexte.
Jusqu'à présent, la vente consistait à se
demander « J'ai un produit, à qui vais-je pouvoir le
vendre? ». A l'ère du Big Data, nous devons changer le
paradigme pour dire « J'ai un client, de quoi a-t-il besoin
aujourd'hui ? ». En connaissant mieux son public, à
travers ses achats, ses activités sur Internet, son environnement, les
commerçants peuvent améliorer l'expérience-client,
exploiter la recommandation, imaginer le marketing prédictif (le
marketing prédictif regroupe les techniques de traitement et de
modélisation des comportements clients qui permettent d'anticiper leurs
actions futures à partir du comportement présent).
V.5.3 Enjeux juridiques
Le principal enjeu juridique dans un contexte où les
utilisateurs sont souvent des « produits », reste la
protection de la vie privée.
V.6 Limites des Big
Data
Si le terrain de jeu du Big Data est loin d'être
restreint, il n'est pas sans limites. Elles tiennent, en premier lieu, à
la nature des données et aux traitements envisagés, et lorsqu'il
est question des données personnelles, la vigilance est
nécessaire. Dans certains pays, le traitement des données
à caractère personnel est régi par des dispositions
particulières, ce qui n'est pas le cas dans la majorité des
pays.
Nous sommes arrivés à un point où la
protection des données personnelles, portée à la
défense des libertés fondamentales de l'individu, est en train de
devenir un argument économique. L'enjeu étant dorénavant,
d'élaborer le cadre normatif le plus attractif pour le
développement de l'économie numérique et des
échanges de données, ceci nécessite d'être vigilent
dans un contexte de forte concurrence entre les puissances économiques.
L'autre préoccupation provient de la
sécurité : une faille minuscule peut menacer des quantités
de données considérables. Si les
utilisateurs perdent confiance dans l'utilisation de leurs informations, c'est
donc tout l'édifice du big data qui risque de s'écrouler. Pour
éviter cela, par exemple en Europe, la commission européenne a
présenté, en début 2012, un règlement qui vise
à protéger davantage les utilisateurs. Ce texte devrait
être voté en 2014 pour une application en 2016, il obligera les
entreprises à demander le consentement explicite de l'utilisateur avant
de collecter ses données. (Haas, 2013)
V.7 Paysage
technologique des Big Data
Après la présentation des Big Data, il est aussi
important de voir le paysage technologique qui constitue cette technologie. Les
données quelque soit leur structure passent par plusieurs étapes
avant que leur valeur ne soit perceptible. Ci-dessus, nous avons un
aperçu global de différentes technologies présentes dans
le paysage Big Data.
Figure 3 : Paysage technologique Big Data,
(Bermond, 2013)
Le Big Data repose sur plusieurs technologies, qui sont
utilisées pour exploiter les gigantesques masses de données.
V.7.1 Intégration
Dans le contexte Big Data, l'intégration des
données s'est étendue à des données non
structurées (données des capteurs, journaux Web, réseaux
sociaux, documents). Hadoop utilise le scripting via MapReduce ; Sqoop et
Flume participent également à l'intégration des
donnés non structurées. Ainsi, certains outils
d'intégration comprenant un adaptateur Big Data existe
déjà sur le marché ; c'est le cas de Talend
Enterprise Data Integration - Big Data Edition. Pour intégrer des gros
volumes de données issus de briques fondatrices du système
d'information des entreprises (ERP, CRM, Supply Chain (gestion de la
chaîne logistique)), les ETL, les EAI, les EII sont toujours
utilisés.
V.7.2 Stockage
Le premier élément structurant dans le contexte
Big Data est le socle de stockage des données. Anciennement, la solution
était les DatawareHouse (entrepôts de données), qui ont
évolué pour supporter de plus grandes quantités de
données et faire porter par le stockage, une capacité de
traitement étendue. Les solutions de DatawareHouse ont toutes en commun
un modèle de données profondément structuré
(schéma, base de données, tables, types, vues, etc) et un langage
de requête SQL.
Le Big Data vient rompre cette approche ; l'approche du
Big Data consiste en 2 grands principes.
Premièrement, le principe de la scalabilité
(horizontale) des clusters de traitement. Puis deuxièmement, on peut
s'affranchir de certaines contraintes inhérentes aux bases de
données relationnelles traditionnelles et qui ne sont pas
forcément nécessaires pour le Big Data. C'est le cas de
l'ACIDité (Atomicité, Cohérence, Isolation et
Durabilité). (Mathieu Millet, 2013)
Pour mettre en oeuvre cette approche avec une infrastructure
simple, scalable (mot utilisé pour indiquer à quel point un
système matériel ou logiciel parvient à répondre
à une demande grandissante de la part des
utilisateurs,
il traduit aussi la capacité de montée en charge), du
matériel à bas coût, le framework Hadoop est utilisé
pour la gestion du cluster, l'organisation et la manière de
développer. La solution la plus emblématique de cette approche
est Hadoop et son écosystème.
V.7.3 Analyse
C'est bien de pouvoir stocker les données, mais faut-il
pouvoir également les rechercher, les retrouver et les exploiter :
c'est l'analyse des données. Elle est naturellement l'autre volet
majeur du paysage technologique du Big Data. En la matière, une
technologie qui s'impose, Hadoop. Ce projet applicatif fait l'unanimité
même s'il est loin d'être stable et mature dans ses
développements. Hadoop utilise MapReduce pour le traitement
distribué.
MapReduce est un patron d'architecture de développement
informatique introduit par Google qui permet de réaliser des calculs
parallèles de données volumineuses (supérieures à 1
téraoctet). Les calculs peuvent être distribués sur
plusieurs machines ce qui permet de répartir les charges de travail et
d'ajuster facilement le nombre de serveurs suivant les besoins.
Plusieurs implémentations de MapReduce existent dont
les plus connues sont l'implémentation réalisée par Google
nommée Google MapReduce et l'implémentation Apache MapReduce.
L'implémentation de Google est propriétaire alors qu'Apache
MapReduce est open source.
Apache MapReduce est un des deux composants majeurs du
framework open source Apache Hadoop qui permet la gestion des Big Data.
V.7.4 Restitution
Le Big data met aussi l'accent sur l'importance de restituer
efficacement les résultats d'analyse et d'accroître
l'interactivité entre utilisateurs et données. Ainsi, des
produits comme QlikView, Tableau (de Tableau Software), PowerView, SpotFire
proposent des visualisations graphiques innovantes.
V.8
Ecosystème Hadoop
Pour certains, l'avenir appartiendra à ceux qui seront
capable d'analyser les vastes volumes de données qu'ils ont
collectés.
En écologie, un écosystème est l'ensemble
formé par une association ou communauté d'êtres vivants et
son environnement biologique, géologique, édaphique,
hydrologique, climatique, etc. l'écosystème Hadoop est l'ensemble
des projets Apache ou non, liés à Hadoop et qui sont
appelés à se cohabiter.
Hadoop désigne un framework Java libre ou un
environnement d'exécution distribuée, performant et scalable,
dont la vocation est de traiter des volumes des données
considérables. Il est le socle d'un vaste écosystème
constitué d'autres projets spécialisés dans un domaine
particulier parmi lesquels on compte les entrepôts de données, le
suivi applicatif (monitorring) ou la persistance de données.
Le schéma ci-après présente les
différents éléments de l'écosystème Hadoop
en fonction du type d'opération.
Figure 4 : Ecosystème Hadoop
V.8.1 Hadoop kernel
Hadoop Kernel est le coeur de l'écosystème
Hadoop. Ce framework est actuellement le plus utilisé pour faire du Big
Data. Hadoop est écrit en Java et a été crée par
Doug Cuttting et Michael Cafarella en 2005, (Le framework Apache
Hadoop). Le noyau est composé de 2 composants. Hadoop
présente l'avantage d'être issu de la communauté open
source, de ce fait un porte un message exprimant une opportunité
économique. En revanche, il affiche une complexité qui est loin
de rendre accessible au commun des DSI.
Nous continuerons par une présentation de quelques
grands concepts d'Hadoop.
V.8.1.1
Architecture Hadoop
Le schéma ci-dessous présente l'architecture
distribué dans le contexte Hadoop.
Figure 5 : Architecture Hadoop avec les
principaux rôles des machines, (Le framework Apache Hadoop)
Il est primordial de savoir qu'une architecture Hadoop est
basée sur le principe maître/esclave, représentant les deux
principaux rôles des machines. Les sous rôles relatifs au
système de fichiers et à l'exécution des tâches
distribuées sont associés à chaque machine de
l'architecture.
Les machines maîtres ont trois principaux rôles
qui leur sont associées :
§ JobTracker : c'est le rôle
qui permet à la machine maître de lancer des tâches
distribuées, en coordonnant les esclaves. Il planifie les
exécutions, gère l'état des machines esclaves et
agrège les résultats des calculs.
§ NameNode : ce rôle assure
la répartition des données sur les machines esclaves et la
gestion de l'espace de nom du cluster. La machine qui joue ce rôle
contient des métadonnées qui lui permettent de savoir sur quelle
machine chaque fichier est hébergé.
§ SecondaryNameNode : ce rôle
intervient pour la redondance du NameNode. Normalement, il doit être
assuré par une autre machine physique autre que le NameNode car il
permet en cas de panne de ce dernier, d'assurer la continuité de
fonctionnement du cluster.
Deux rôles sont associés aux machines
esclaves :
§ TaskTracker : ce rôle permet à un
esclave d'exécuter une tâche MapReduce sur les données
qu'elle héberge. Le TaskTracker est piloté par JobTracker d'une
machine maître qui lui envoie la tâche à exécuter.
§ DataNode : dans le cluster, c'est une machine qui
héberge une partie des données. Les noeuds de données sont
généralement répliqués dans le cadre d'une
architecture Hadoop dans l'optique d'assurer la haute disponibilité des
données.
Lorsqu'un client veut accéder aux données ou
exécuter une tâche distribuée, il fait appel à la
machine maître qui joue le rôle de JobTracker et de Namenode.
Maintenant que nous avons vu globalement l'articulation d'une
architecture Hadoop, nous allons voir deux principaux concepts inhérents
aux différents rôles que nous avons présentes.
V.8.1.2 HDFS
HDFS est le système de fichiers Java, permettant de
gérer le stockage des données sur des machines d'une architecture
Hadoop. Il s'appuie sur le système de fichier natif de l'OS (unix) pour
présenter un système de stockage unifié reposant sur un
ensemble de disques et de systèmes de fichiers.
La consistance des données réside sur la
redondance ; une donnée est stockée sur au moins n volumes
différents.
Le NameNode rendrait le cluster inaccessible s'il venait
à tomber en panne, il représente le SPOF (maillon faible) du
cluster Hadoop. Actuellement, la version 2.0 introduit le failover
automatisé (capacité d'un équipement à basculer
automatiquement vers un équipement alternatif, en cas de panne). Bien
qu'il y ait plusieurs NameNodes, la promotion d'un NameNode se fait
manuellement sur la version 1.0.
Dans un cluster les données sont
découpées et distribuées en blocks selon la taille
unitaire de stockage (généralement 64 ou 128 Mo) et le facteur
de réplication (nombre de copie d'une donnée, qui est de 3 par
défaut).
Un principe important de HDFS est que les fichiers sont de
type « write-one » ; ce ci est lié au fait que
lors des opérations analytiques, la lecture des données est
beaucoup plus utilisée que l'écriture.
V.8.1.3
MapReduce
Mapreduce qui est le deuxième composant du noyau Hadoop
permet d'effectuer des traitements distribués sur les noeuds du cluster.
Il décompose un job (unité de traitement mettant en oeuvre un jeu
de données en entrée, un programme MapReduce
(packagé dans un JAR (Java Archive : fichier d'archive,
utilisé pour distribuer un ensemble de classes
Java)) et
des éléments de configuration) en un ensemble de tâche
plus petites qui vont produire chacune un sous ensemble du résultat
final ; ce au moyen de la fonction Map.
L'ensemble des résultats intermédiaires est
traité (par agrégation, filtrage), ce au moyen de la fonction
Reduce.
Le schéma ci-dessous présente le processus d'un
traitement MapReduce.
Figure 6 : Processus d'un traitement MapReduce,
(Bermond, 2013)
Le MapReduce présenté sur le schéma
permet de trouver le nombre d'occurrence des mots d'un fichier nommé ici
« unFichier.txt ».
Durant la phase de « Découpage »,
les lignes du fichier sont découpées en blocs.
Puis lors de la phase « Map », des
clés sont créées avec une valeur associée. Dans cet
exemple une clé est un mot et la valeur est 1 pour signifier que le mot
est présent une fois.
Lors du « Tri », toutes les clés
identiques sont regroupées, ici ce sont tous les mots identiques.
Ensuite lors de la phase « Reduce » un
traitement est réalisé sur toutes les valeurs d'une même
clé. Dans cet exemple on additionne les valeurs ce qui permet d'obtenir
le nombre d'occurrence des mots.
V.8.1.4 Modes
d'utilisation
Hadoop peut être sous trois modes
différents :
§ Mode Standalone : ce mode
à pour objectif de tester le fonctionnement d'une tâche MapReduce.
Ici, la tâche est exécutée sur le poste client dans la
seule machine virtuelle Java (JVM), pas besoin d'une configuration
particulière car c'est la mode de fonctionnement de base de Hadoop.
§ Mode Pseudo distributed : ce mode
permettra de tester l'exécution d'une tâche MapReduce sur une
seule machine tout en simulant le fonctionnement d'un cluster Hadoop. Je job
est exécuté sur la machine et les opérations de stockage
et de traitement du job seront gérées par des processus Java
différents. L'objectif de ce mode est de tester le bon fonctionnement
d'un job sans besoin de mobiliser toutes les ressources du cluster.
§ Mode Fully distributed : c'est le mode
réel d'exécution d'Hadoop. Il permet de mobiliser le
système de fichier distribué et les jobs MapReduce sur un
ensemble de machines ; ceci nécessite de disposer de plusieurs
postes pour héberger les données et exécuter les
tâches.
Dans la suite, d'autres composants qui entrent dans
l'écosystème Hahoop sont présentés.
V.8.2 Composants Apache
Hadoop
V.8.2.1 Hbase
Hbase est un système de gestion de bases de
données non relationnelles distribuées, écrit en Java,
disposant d'un stockage structuré pour les grandes tables. C'est une
base de données NoSQL, orientée colonnes. Utilisé
conjointement avec HDFS, ce dernier facilite la distribution des données
de Hbase sur plusieurs noeuds. Contrairement à HDFS, HBase permet de
gérer les accès aléatoires read/write pour des
applications de type temps réel.
V.8.2.2
HaCatalog
HCatalog permet l'interopérabilité d'un cluster
de données Hadoop avec d'autres systèmes (Hive, Pig, ...). C'est
un service de gestion de tables et de schéma Hadoop. Il permet :
§ D'attaquer les données HDFS via des
schémas de type tables de données en lecture/écriture.
§ D'opérer sur des données issues de
MapReduce, Pig ou Hive.
V.8.2.3 Hive
Hive est un outil de requêtage des données, il
permet l'exécution de requêtes SQL sur le cluster Hadoop en vue
d'analyser et d'agréger les données. Le langage utilisé
par Hive est nommé HiveQL. C'est un langage de visualisation uniquement,
raison pour laquelle seules les instructions de type
« Select » sont supportées pour la manipulation des
données.
Hive proposent des fonctions prédéfinies (calcul
de la somme, du maximum, de la moyenne), il permet également à
l'utilisateur de définir ses propres fonctions qui peuvent
être de 3 types :
§ UDF (User Defined Function) : qui prennent une ligne en
entrée et retournent une ligne en sortie. Exemple : mettre une
chaîne de caractère en minuscule et inversement
§ UDAF (User Defined Aggregate Function) : qui prennent
plusieurs lignes en entrée et retournent une ligne en sortie.
Exemple : somme, moyenne, max....
§ UDTF (User Defined Table Function) : qui prennent une
ligne en entrée et retournent plusieurs lignes en sortie. Exemple :
découper une chaîne de caractère en plusieurs mots.
Hive utilise un connecteur jdbc/odbc, ce qui permet de le
connecter à des outils de création de rapport comme QlikView.
V.8.2.4 Pig
Pig est une brique qui permet le requêtage des
données Hadoop à partir d'un langage de script (langage qui
interprète le code ligne par ligne au lieu de faire une compilation).
Pig est basé sur un langage de haut niveau appelé PigLatin. Il
transforme étape par étape des flux de données en
exécutant des programmes MapReduce successivement ou en utilisant des
méthodes prédéfinies du type calcul de la moyenne, de la
valeur minimale, ou en permettant à l'utilisateur de définir ses
propres méthode appelées User Defined Functions (UDF).
V.8.2.5 Sqoop
Sqoop est une brique pour l'intégration des
données. Il permet le transfert des données entre un cluster et
une base de données relationnelles.
V.8.2.6 Flume
Flume permet la collecte et l'agrégation des fichiers
logs, destinés à être stockés et traités par
Hadoop. Il s'interface directement avec HDFS au moyen d'une API native.
V.8.2.7 Oozie
Oozie est utilisé pour gérer et coordonner les
tâches de traitement de données à destination de Hadoop. Il
supporte des jobs Mapreduce, Pig, Hive, Sqoop, etc.
V.8.2.8
Zookeeper
Zookeeper est une solution de gestion de cluster Hadoop. Il
permet de coordonner les tâches des services d'un cluster Hadoop. Il
fournit au composants Hadoop les fonctionnalités de distribution.
V.8.2.9 Ambari
Ambari est une solution de supervision et d'administration de
clusters Hadoop. Il propose un tableau de bord qui permet de visualiser
rapidement l'état d'un cluster. Ambari inclut un système de
gestion de configuration permettant de déployer des services d'Hadoop ou
de son écosystème sur des clusters de machines. Il ne se limite
pas à Hadoop mais permet de gérer également tous les
outils de l'écosystème.
V.8.2.10 Mahout
Mahout est un projet de la fondation
Apache visant à créer des implémentations
d'algorithmes d'apprentissage automatique et de datamining.
V.8.2.11 Avro
Avro est un format utilisé pour la sérialisation
des données.
Le caractère open source de Hadoop a permis à
des entreprises de développer leur propre distribution en ajoutant des
spécificités.
V.9 Solutions Big
Data sur le marché
Sur le marché, on retrouve une panoplie de solutions,
chacune avec ses particularités.
Figure 7 : Solutions
Big Data sur le marché, (Bermond, 2013)
Parmi cette panoplie, trois se distinguent par le
développement d'une distribution Hadoop :
§ Cloudera : c'est le leader, ce
qui lui donne une légitimité avec un nombre de clients
supérieur à celui de ses concurrents. Le fait de disposer du
créateur du framework Hadoop dans ces rangs est un grand avantage.
§ MapR : cette distribution offre
une solution un peu éloignée d'Apache Hadoop car elle
intègre sa propre vision de MapReduce et HDFS. Elle vient juste
après Cloudera.
§ Hortonworks : cette distribution
est l'unique plateforme entièrement Hadoop. Sa stratégie est de
se baser sur les versions stables de Hadoop plutôt que sur les
dernières versions.
Cloudera est la solution qui a été retenue pour
la réalisation des tests.
VI. Solution mise
en place
VI.1 Choix de la solution et tests techniques
réalisés
La distribution Cloudera a été utilisée
pour plusieurs raisons. Tout d'abord le fait que Cloudera propose une version
open source qui utilise les principaux composants de Hadoop. Ensuite, la
distribution de Cloudera est la plus mature sur le marché avec
déjà la quatrième version nommée CDH4. Mais
surtout, la distribution de Cloudera est la plus utilisée en entreprise.
En effet, selon le livre blanc « Où en est l'adoption du Big
Data ? » publié par Talend en 2013, 12% des personnes ont
répondues qu'elles considéraient pour l'avenir ou utilisaient
déjà la distribution de Cloudera contre 4% pour la distribution
de MapR et 3% pour la distribution d'Hortonworks. Le reste des réponses
concernant d'autres solutions. (Talend, 2013)
Cloudera existe en trois versions : Free
Edition, Standard et Enterprise.
J'ai décidé d'utiliser la version Enterprise (car elle
était gratuite pour une période de 60 jours et passait en version
Standard si l'on arrivait au terme de la période d'essai sans
s'être procuré d'une licence) afin d'explorer les
fonctionnalités qu'elle offre vu que celles-ci sont adaptées pour
un contexte d'entreprise. Cloudera propose un outil pour superviser et
automatiser le déploiement des clusters Hadoop nommé Cloudera
Manager. C'est ce composant que j'ai utilisé pour installer le cluster
Hadoop.
Les fonctionnalités clés de Cloudera sont les
suivantes :
§ Gestion du cluster : elle permet de
déployer, configurer et exploiter facilement des clusters de
façon centralisée, avec une administration intuitive pour tous
les services, les hôtes et les workflows.
§ Monitoring du cluster : elle permet de maintenir
une vue centralisée de toutes les activités de la grappe (noeuds
du cluster), ses contrôles proactifs et des alertes.
§ Diagnostique du cluster : cette
fonctionnalité permet de diagnostiquer et résoudre facilement les
problèmes avec l'aide des rapports opérationnels et des tableaux
de bord, des événements, de l'affichage des journaux, des pistes
d'audit.
§ Intégration : cette fonctionnalité
permet d'intégrer les outils de surveillance existants (SNMP, SMTP) avec
Cloudera Manager.
Cloudera Manager permet de choisir entre la version 1.0 et 2.0
du framework Hadoop. J'ai opté pour la version 1.0 puisque la version
2.0 était en version alpha et n'était pas encore tout à
fait stable.
VI.1.1 Architecture
du cluster mise en place
Le schéma ci-dessous présente l'architecture du
cluster hadoop que j'ai mis en place dans le cadre de ce mon travail.
Figure 8 : Architecture du cluster Hadoop mis en
place
Ce cluster est constitué de postes standards
équipés de système d'exploitation Ubuntu (version 10.04).
Cette architecture est hébergée dans un environnement virtuel, ce
qui nous a permis de tester la virtualisation d'un cluster Hadoop, solution
incontournable pour faire du Big Data sur le cloud. Ce schéma
présente les différentes machines (maître et esclave) du
cluster et les rôles qui leurs sont associés dans le cadre d'une
architecture Hadoop.
VI.1.2
Architectures des composants des machines
Ces architectures présentent les composants qui sont
déployés sur chaque machine. Sur les machines, plusieurs
composants de l'écosystème Hadoop sont installés, à
savoir les composants du kernel Hadoop, les composants Apache Hadoop et des
composants spécifiques à Cloudera.
Les composants propres à Cloudera sont les
suivants :
§ Cloudera Manager : il permet
l'installation automatisée des composants de la plateforme sur une
machine. Il permet également de centraliser la configuration des
composants du cluster, d'effectuer un contrôle d'intégrité
des composants à la fin de l'installation.
§ Hue : c'est un outil qui fournit
des interfaces utilisateur pour les applications Hadoop.
§ Impala : c'est moteur temps
réel de requêtage SQL parallélisé de données
stockées dans HDFS ou HBase. Il n'utilise pas MapReduce qui exige
le stockage des résultats dans HDFS, ce qui lui permet d'une part
d'optimiser le temps d'exécution des requêtes et d'autre part, une
consultation des données de façon interactive.
§ Solr (Cloudera search), c'est un outil
qui n'est pas propre à Cloudera mais qu'il intègre pour effectuer
la recherche sur les données du cluster.
VI.1.2.1 Serveur maître
Ce schéma présente les composants
déployé sur le serveur maître.
Figure 9 : Architecture des composants sur un
serveur maître
VI.1.2.2 Serveur esclave
Ce schéma présente l'architecture des composants
sur un serveur esclave.
VI.1.3
Déploiement de la plateforme
Le déploiement du cluster peut se faire soit
manuellement (utilisation des packages), soit automatique avec Cloudera
Manager. J'ai fait une installation automatique pour limiter des
éventuelles erreurs d'installation et aussi compte tenu du temps donc je
disposais pour mon stage.
La figure ci-dessous présente la page d'accueil de la
console web de Cloudera Manager après l'installation du cluster, listant
les différents composants installés sur le cluster Hadoop.
Figure 10 : Page
d'accueil de Cloudera Manager après l'installation du
cluster
VI.1.4 Tests techniques réalisés
VI.1.4.1 But des tests
Lorsqu'on réalise un test, il est important de
d'utiliser une démarche précise et de définir les
objectifs à atteindre à la fin du test, ce qui permettra de faire
un contrôle à la fin, par rapport aux résultats obtenus
pour savoir si le test à été satisfaisant ou non.
La démarche a consisté à tester les
composants séparément ou conjointement, à identifier les
fonctionnalités de chacun.
Les objectifs des différents tests
étaient :
§ D'acquérir une meilleure connaissance de chaque
composant
§ Pouvoir présenter le fonctionnement de chaque
composant
§ Faire des recommandations par rapport à
l'utilisation d'un composant
§ Montrer la mise en oeuvre de certains concepts
VI.1.4.2 Test de l'environnement existant
Avant de compléter les tests, il fallait que je refasse
des tests précédemment réalisées pour mieux
appréhender l'environnement. Ainsi j'ai redéployé le
précédent environnement, puis j'ai testé les composants
HDFS, Mapreduce, Flume, Hbase, Hive, Hue et Coudera Manager.
VI.1.4.3 Test sur le nouvel environnement
VI.1.4.3.1
Traitement de données avec Mapreduce et HDFS
Lorsque les données sont collectées sans un
outil spécifique, elles sont d'abord stockées sur le
système de fichier local, puis l'utilisateur les déplace sur le
système de fichier HDFS. HDFS repartit et réplique les
données sur les différents noeuds du cluster en tenant compte du
facteur de réplication pour assurer une certaine tolérance
à d'éventuelles pannes. Lors du traitement, toutes les
données concernées sont mobilisées quelque soit leur
emplacement.
La problématique sous-jacente est celle de savoir
comment les traitements sont réalisés sur des données
dispersées dans le cluster.
Ce sont les composants du noyau Hadoop qui participent au
traitement : MapReduce et HDFS. Pour réaliser le traitement, il
faut développer un programma java composé de deux fonctions
principales : map et reduce.
Pour le test, j'ai crée un programme dans une classe
java nommée « Election », je me suis procurée
des open data sur les élections françaises et européennes.
Le programme devait parcourir le répertoire sur HDFS, contenant les
différents fichiers relatifs aux élections et pour chaque
scrutin, il devait retourner le libellé du scrutin et le nombre
d'inscrit à ce scrutin.
Par la suite j'ai compilé le programme et crée
un fichier JAR exécuté via cette commande :
Nombre de fichier en entrée (input)
Hadoop jar : c'est la commande
permettant de lancer un programme MapReduce
/home/user/election/jar/election.jar :
c'est le chemin d'accès au fichier JAR qui s'appelle
« election.jar »
mapreducejob.Election : c'est le nom de
la classe java contenant l'entrée du programme (méthode main)
précédé du nom du package qui le contient
hdfs://10.67.126.151 :8020/tmp/data/election/InputElection :
c'est le chemin d'accès aux données sur lesquelles le traitement
s'effectue
hdfs://10.67.126.151 :8020/tmp/data/election/NombreElecteursInscrits
: c'est le chemin d'accès au répertoire qui stocke le
résultat du traitement
L'exécution du fichier jar a bien fonctionné et
le résultat est bien en registré dans HDFS, dans le
répertoire indiqué lors de l'exécution, ce qui est
perceptible via le commande ci-dessous
VI.1.4.3.2
Restitution des données
La restitution des résultats des traitements dans
Hadoop n'est pas conviviale à cause des propriétés
intrinsèques de HDFS qui est un système de fichier et non outil
de présentation de données. De plus, les résultats de
traitement ne sont pas assez structurés pour faciliter leur
lisibilité.
La problématique qui se pose est de savoir comment
faciliter la lisibilité des résultats des traitements
stockés dans HDFS.
Dans l'écosystème Hadoop, plusieurs solution
sont possibles (utilisation de Sqoop, Pig), j'ai opté pour l'utilisation
de Hive car elle offre déjà la possibilité de connexion
à un outil de visualisation de données.
Requêtage des données via Hive
Le composant Hive permet de créer une structure des
données à partir des données stockées dans HDFS.
L'objectif était donc d'appréhender concrètement comment
Hive améliore la restitution des informations provenant de HDFS.
Les requêtes étant réalisées avec
HiveQL, langage similaire au langage SQL, l'appropriation du langage est plus
rapide.
J'ai testé des requêtes sur des données
stockées dans HDFS et visualisé les résultats depuis la
console Hive et l'interface web. Les données sont stockées sous
forme de tables. Les exemples sont présentés dans la suite du
document.
Hive se base sur des traitements MapReduce pour
réaliser les requêtes ce qui suscite des temps de réponse
assez long. Pour pallier ce problème, il est possible de partitionner
les tables pour réaliser les requêtes sur certaines parties de la
table au lieu de la table entière. Cela permet également de ne
recharger qu'une partie des données en cas de modification ou de
suppression ce qui est important dans le cas de grands volumes de
données.
VI.1.4.3.3 Test de
scalabilité et traitements distribués
Hadoop permet le stockage des données dans le
système de fichier HDFS et la réalisation des traitements
distribués sur ces données. L'infrastructure matérielle
contribue largement au traitement des données. Le traitement sur de gros
volumes de données qui augmentent continuellement suppose de disposer
d'une infrastructure qui supporte la montée en charge.
La scalabilité est considérée comme la
capacité d'un produit à s'adapter à un changement d'ordre
de grandeur de la demande ; elle est également
considérée comme la capacité d'un système à
accroître sa capacité de calcul sous une charge accrue quand des
ressources (généralement du matériel) sont
ajoutées.
La problématique est de savoir comment un cluster
Hadoop répond au besoin de scalabilité et la distribution des
traitements avec une scalabilité horizontale.
Dans un premier temps, j'ai testé un programme
MapReduce sur un échantillon de 100 Mo de données, dans un
cluster à 4 noeuds où j'avais mis un noeud hors service.
Figure 11 : Capacité de stockage initiale
du cluster
Le schéma ci-dessus présente la capacité de
stockage sur les trois noeuds actifs du cluster sur lequel le job MapReduce est
lancé. A partir de cette fenêtre de la console, on
peut accéder :
§ A l'interface utilisateur du NameNode
§ Aux évènements générés
par le service hdfs1
§ Aux différents rapports sur le système de
fichiers
§ Aux différentes instances du service
§ Aux commandes en cours d'exécution, utilisant ce
service
§ A la configuration du service
§ Etc
Figure 12 : Distribution des tâches du job
sur les 3 noeuds actifs
Sur ce schéma, on voit les TaskTrackers qui ont
participé au job. En cliquant sur chaque cellule colorée, on
observe le ou les TaskTracker(s) qui ont été sollicités
durant un intervalle de temps précis.
Dans un deuxième temps, j'ai testé le même
programme sur un échantillon de 5 Go de, dans un cluster à 4
noeuds dont un noeud hors service.
Figure 13 : Etat
d'avancement du job
Mis à part la durée du job qui est un peu plus
longue, les tâches sont également distribuées sur les 3
noeuds actifs du cluster.
Dans un troisième temps, j'ai testé le
même programme sur un échantillon de 5Go de données, dans
un cluster à 4 noeuds avec tous les noeuds actifs.
Figure 14 : Capacité de stockage du
cluster après la remise en service du quatrième noeud
Lorsqu'on remet en service un noeud qui était inactif,
la capacité de stockage du cluster augmente.
Figure 15 : Distribution des tâches sur les
4 noeuds actifs
Compte tenu de la capacité du poste physique et de
celle des machines virtuelles, je n'ai pas pu achever ce test ; par contre
avec un échantillon plus réduit
Les différents tests ci-dessus ont permis de montrer
que la scalabilité (horizontale) et la distribution de traitement sont
des concepts bien réels dans un cluster Hadoop, ceci me permet de dire
que l'extension de la capacité de stockage et de traitement est moins
coûteux sur un cluster Hadoop que sur des systèmes de gestions de
base de données traditionnelles.
VI.2 Démonstrateur Big Data
Le démonstrateur Big Data est le livrable qui
présente la mise en oeuvre des cas d'utilisation du Big data. C'est un
livrable qui pourra être utilisé à des fin de
présentation à un client. Le démonstrateur déroule
les cas d'utilisation de la création des jeux de données pour les
tests à la restitution des données via QlikView (outil de
visualisation de données), en passant par les traitements et la
structuration des données.
En terme d'architecture réseau et architecture des
composants, j'ai utilisé las architecture présentées plus
haut dans ce document.
Les différents cas d'utilisations traités sont
les suivantes :
§ Cas d'utilisation 1 : Les différents types
d'utilisateurs sur les réseaux sociaux
§ Cas d'utilisation 2 : Les taux d'adolescents et
d'adultes sur quelques réseaux sociaux
§ Cas d'utilisation 3 : Les taux d'utilisation de
certaines activités sur internet via PC et Mobile
La suite présente la création des données
des tests.
VI.2.1
Création des jeux de donnée de test
Pour la mise en oeuvre des cas d'utilisation de test, à
défaut de disposer des données réels, j'ai crée des
scripts xml pour générer des données semblables aux
données qu'on peut avoir dans un contexte de production. Les scripts xml
étaient exécutés via le générateur de
données Benerator.
Les tableaux ci-dessous présentent les fichiers de
données que j'ai générés pour chaque cas
d'utilisation. Ces différents fichiers xml (tous nommés
benerator.xml et stockés dans des répertoires différents)
sont exécutés sur l'invite de commande à partir des
répertoires qui les contiennent.
VI.2.1.1 Cas d'utilisation 1
Benerator utilise le même nom
« benerator.xml » pour tous les fichiers descripteurs,
raisons pour laquelle ils doivent être dans des répertoires
différents.
Fichier descripteur
|
Effectif
|
Fichier en sortie
|
benerator.xml
|
400
|
TypesUtilisateurs.csv
|
Format d'une ligne du fichier
TypesUtilisateurs.csv
id,nom_profil,nom,prenom,age,sexe,email,ville,pays,numero_de_rue,rue,code_postal,duree_connexion_par_sem,support_acces,nombre_inscription,nombre_amis,communaute_appartenance,interet_utilisation,frequence_utilisation_par_jour,activite_sociale,marque_preferee
Exemple de ligne du fichier TypesUtilisateurs.csv
9,POBHKCRUKAWFUNEHGOJVHQ,Lefebvre,Daniel,44,F,daniellefebvre@tradeshop.com,WALNUT,United
States,26,11th
Street,38683,2,Mobile,3,486,Musulmane,Professionnel,3,the_dansant,Nike
VI.2.1.2 Cas d'utilisation 2
Fichier descripteur
|
Réseau social / Tranche
|
Effectif
|
Fichier en sortie
|
benerator.xml
|
Facebook /Adolescent
|
164
|
TauxAdoFacebook.csv
|
benerator.xml
|
Facebook / Adulte
|
164
|
TauxAdultesFacebook.csv
|
benerator.xml
|
Twitter /Adolescent
|
395
|
TauxAdoTwitter.csv
|
benerator.xml
|
Twitter / Adulte
|
542
|
TauxAdultesTwitter.csv
|
benerator.xml
|
Pinterest /Adolescent
|
319
|
TauxAdoPinterest.csv
|
benerator.xml
|
Pinterest / Adulte
|
542
|
TauxAdultesPinterest.csv
|
benerator.xml
|
Instagram /Adolescent
|
318
|
TauxAdoPinterest.csv
|
benerator.xml
|
Instagram / Adulte
|
532
|
TauxAdultesPinterest.csv
|
benerator.xml
|
Tumblr / Adulte
|
318
|
TauxAdoTumblr.csv
|
benerator.xml
|
Tumblr / Adulte
|
542
|
TauxAdultesTumblr.csv
|
Format d'une ligne d'un fichier
id,nom_profil,nom,prenom,age,sexe,email,ville,pays,numero_de_rue,rue,code_postal,taux_Ado_facebook
Exemple de ligne d'un fichier
1,TRNSEGBTOUXIWZV,Bernard,Andre,16,F,andre_bernard@gmail.com,GRAND
CHENIER,United States,34,Spring Street,70643,Oui
VI.2.1.3 Cas d'utilisation 3
Fichier descripteur
|
Effectif
|
Fichier en sortie
|
benerator.xml
|
1000
|
TempsPCMobileSurInternet.csv
|
Format d'une ligne du fichier TempsPCMobileSurInternet.csv
id,maps,weather,music,social_network,sport,retail,newspaper,game,email,portal
Exemple de ligne du fichier TempsPCMobileSurInternet.csv (chaque
mot correspond à une activité, par exemples méto,
musique)
16,Mobile,Mobile,Mobile,PC,PC,Mobile,Mobile,Mobile,PC,PC
VI.2.2
Scénario d'exécution des cas d'utilisation
Le schéma ci-dessous présente les
enchaînements à suivre pour dérouler complètement un
cas d'utilisation.
Figure 16 :
Scénario d'exécution des cas d'utilisation
VI.2.3
Création des programmes MapReduce
Pour chacun des fichiers csv présent dans les tableaux
précédents, j'ai crée un programme java qui
sélectionne pour chaque ligne du fichier, les champs utiles et les
formate afin de faciliter leur intégration dans Hive.
Exemple de résultat des programmes
exécutés :
Figure 17 : Résultat d'un job MapReduce
via l'interface Hue
VI.2.4 Restitution
des données via Hive
Comme mentionnée un peu plus haut dans ce document, pour
améliorer la lisibilité des données dans HDFS, j'ai
importé les résultats des traitements dans Hive.
Dans hive, lorsqu'une table est crée avec des
données stockées dans HDFS, les données sont
déplacées de HDFS vers Hive, il n'y plus les données
aucune copie sur HDFS pour d'éventuelles utilisation. Pour éviter
que les données ne soient supprimer de HDFS, il faut créer une
table externe qui pointer vers les données présentes sur HDFS et
une table simple ; copier les données de la table externe vers la
table simple, ceci permettra de pouvoir réutiliser les données
présentes sur HDFS. Ainsi pour chaque résultat de traitement j'ai
crée une table externe, une table simple et j'ai copié les
données la table externe vers la table simple.
Exemple du cas d'utilisation 1
§ Création de la table externe
CREATE EXTERNAL TABLE types_utilisateurs_ex (id int, age int,
genre string, amis int, nombre_inscription int, duree_connexion_par_sem double,
frequence_utilisation_par_jour int, mapreduce int) ROW FORMAT DELIMITED FIELDS
TERMINATED BY '\t' LOCATION
'hdfs://Master.corp.capgemini.com:8020/user/admin/typesutilisateurs_rs/output/';
§ Création de la table simple
CREATE TABLE types_utilisateurs_in (id int, age int, genre
string, amis int, nombre_inscription int, duree_connexion_par_sem double,
frequence_utilisation_par_jour int);
§ Copie des données de la table externe vers la
table simple
FROM types_utilisateurs_ex ue INSERT OVERWRITE TABLE
types_utilisateurs_in SELECT ue.id, ue. age, ue.genre, ue.amis,
ue.nombre_inscription, ue. duree_connexion_par_sem,
ue.frequence_utilisation_par_jour ;
Avec Hive, il est possible de visualiser les contenus des
tables soit en sur la console, soit sur l'interface graphique. Le schéma
ci-dessous présente un extrait du résultat de la requête
« select * from utilisateurs_in; » sur l'invite de commande.
Figure 18 : Résultat de requête sur
l'invite de commande de Hive
J'ai traité tous les résultats présents
dans HDFS de la même façon pour améliorer leur
visualisation dans Hive.
Les données ainsi structurées, sont
importées dans un outil de visualisation qui va faciliter leur analyse
et la prise de décision.
VI.2.5 Restitution
des données via QlikView
QlikView est un outil du monde de la Business Intelligence
(BI), utilisé dans le cadre de la visualisation des données. Il
dispose d'une interface utilisateur conviviale et utilise la technologie
in-memory (technologie permettant d'effectuer des traitements en mémoire
vive sur de grandes quantités de données) pour une interaction
plus rapide avec les données. La plateforme Big Data mise en place avec
cluster Hadoop est indépendante des plateformes de Business Intelligence
des entreprises. Néanmoins, ces deux mondes partagent un même
objectif qui est d'extraire de la valeur des données dont disposent les
entreprises afin de faciliter la prise de décision. (Bermond,
2013)
A la différence de la BI qui est plus mature et qui
fournit des outils efficaces et ergonomiques, les plateformes Big Data ne
permettent pas encore une restitution de données conviviale.
Pour répondre à la problématique de
visualisation, le monde du Big Data s'appui actuellement sur les outils du
monde de la BI. Il est donc judicieux d'utiliser les outils de la BI
déjà connus et adoptés par les utilisateurs.
Pour exploiter cet outil, premièrement, j'ai
installé un connecteur ODBC pour connecter Hive à QlikView et
tester la connexion à Hive à partir de la machine physique.
Dans un second temps, j'ai réalisé une
application QlikView qui m'a permis de créer le script permettant de
créer et d'importer les données. A partir des données
importées dans QlikView, j'ai créés des graphiques pour
les différents cas d'utilisation.
Les schémas ci-dessous présentent les
résultats des différents Cas d'utilisation s via des graphiques
crées sur QlikView.
VI.2.5.1 Cas d'utilisation 1
Figure 19 : Les types d'utilisateur sur les
réseaux sociaux
Cette classification est faite en fonction du nombre de
réseau social auquel l'utilisateur est inscrit et du temps moyen de
connexion par semaine. Sur un échantillon de 400 utilisateurs, QlikView
m'a permis de créer des dimensions en fonction des certaines attributs
de l'utilisateur, ainsi :
§ Ceux qui sont inscrits sur moins de trois réseaux
sociaux et qui passent moins de 3 heures par semaine sur ces réseaux
sociaux sont des « Biginners »
§ Ceux qui sont inscrits sur moins de trois réseaux
sociaux et qui passent 3 heures ou plus par semaine sur ces réseaux
sociaux sont des « Conservatis »
§ Ceux qui sont inscrits sur trois réseaux sociaux ou
plus et qui passent moins de 3 heures par semaine sur ces réseaux
sociaux sont des « Fashionitas »
§ Ceux qui sont inscrits sur trois réseaux sociaux ou
plus et qui passent 3 heures ou plus par semaine sur ces réseaux sociaux
sont des « Digiratis »
VI.2.5.2 Cas d'utilisation 2
Figure 20 : Taux d'adolescents et d'adulte sur
les réseaux sociaux
VI.2.5.3 Cas d'utilisation 3
Figure 21 : Activités sur internet PC vs
Mobile
QlikView permet également de d'agréger des
données à travers des fonctions d'agrégation, mais ceci
n'est judicieux que pour des petites quantités des données. Il
propose une visualisation plus agréable et performante des
données pour faciliter la prise de décision.
Lorsque les données sont importées dans
QlikView, pour représenter des graphiques, les champs passés dans
l'expression sont agrégés. Il faut donc faire attention dans le
traitement au niveau de Hadoop, à ne pas agréger toutes les
données dans le Reduce.
Il faut faire des agrégations utiles à la
récupération des données (qu'on veut exploiter) dans
Hadoop et effectuer des agrégations utiles à la
représentation des graphiques dans QlikView.
VI.3 Outils utilisés
En dehors des composants de l'écosystème et des
composants propres à Cloudera, j'ai utilisé :
§ Vritual box pour la virtualisation des
machines,
§ Winscp pour le transfert des fichiers de
la machine physique aux machines virtuelles et inversement,
§ Putty pour l'accès aux machines
via ssh,
§ Dropbox pour le partage des fichiers,
§ NodePad++ et Eclipse pour le
développement des programmes
§ Benerator pour la
génération des données de test,
§ Photosphop pour la préparation des
contenus de la vidéo de démonstration,
§ Powtoon, Movie Maker, HyperCam et
VirtualDubMod pour la réalisation de la vidéo
§ QlikView pour la réalisation de
graphiques.
VII. Futur du Big Data
Les technologies du Big Data s'inscrivent dans une
évolution continue compte tenu du fait qu'elles sont jeunes et pas
encore stables, ce qui leur vaut la réticence des certaines entreprises.
Actuellement, le virage technologique est d'ores et déjà
annoncé. Le Big Data s'impose tout doucement, mais certains aspects ne
sont pas encore à la hauteur des attentes, certaines pistes sont
à explorer profondément avant l'intégration dans les
systèmes d'information :
§ La sécurité : elle est
encore balbutiante malgré quelques initiatives comme Apache Knox
(système qui fournit un point unique d'authentification et
d'accès pour les services Apache Hadoop dans un cluster. Le but est
de simplifier la sécurité Hadoop pour les utilisateurs (qui ont
accès aux données du cluster et exécutent des jobs) et les
opérateurs (qui contrôlent les accès et de gèrent le
cluster).
§ L'intégration avec le système
d'information (SI), une plate forme Hadoop isolée et non
intégrée au système d'information ne sera plus possible
dans le futur (en tout cas certains besoins exigeront une interaction plus
grande). Cette intégration entraînera une modification des
processus et par conséquent des besoins de formation des ressources
humaines.
§ Les ressources
compétentes : actuellement les compétences ne sont
pas encore assez poussées dans le domaine
§ Protection de la vie
privée : la manipulation à grande échelle de
des données pose aussi le problème de la
vie privée.
Trouver l'équilibre
entre le respect de son intimité et les bénéfices
tirés du big data n'est pas simple. Les utilisateurs des
réseaux sociaux ignorent souvent que leurs données privées
sont accessibles par un grand public, beaucoup reste à faire afin de
garantir la protection des utilisateurs.
« L'avenir appartiendra à ceux qui seront
capable d'analyser les vastes volumes de données qu'ils ont
collectés ».
VIII. Bilan du stage
VIII.1 Planning
prévisionnel
Au début du stage, j'ai élaboré un
planning qui couvrait toute ma période de stage.
TT : test technique
VM : virtual machine
Activités
|
Tâches
|
Durée prévue (en jours)
|
Contexte du stage, structure d'accueil
|
Présentation CAPGEMINI, sujets de stages
|
1
|
Documentation (Support)
|
Présentation de la documentation
|
1
|
Présentation des outils
|
0,25
|
Installation des outils (Putty, virtual box, dropbox)
|
0,25
|
Présentation de la vidéo (stockage, traitement,
restitution des données)
|
0,25
|
Récupération et importation des machines
virtuelles
|
0,15
|
Parcourir la documentation
|
5
|
Récupération et exploitation de la documentation
sur les "usages et apports des technologies Big Data"
|
2
|
Identification des cas d'utilisation (permettant de
définir les besoins fonctionnels)
|
0,15
|
Recherche algorithme de recommandation
|
1
|
Documentation installation du cluster (Cloudera installation
manuelle)
|
1
|
Documentation collecte des données via l'API Flume
|
1
|
Documentation et compréhension fonctionnement de REST
|
0,5
|
Divers
|
Réunion avec Ameline (questionnaire)
|
0,1
|
Relecture du powerpoint
|
1
|
Récupération des codes sources
|
0,1
|
Réunion avec Ameline (questionnaire)
|
1
|
Test des VM (démarrage, connexion, configuration
réseau)
|
1
|
Faire une sauvegarde (image) des VM
|
0,25
|
Mise à jour du powerpoint
|
5
|
Compréhension des langages utilisés par les
différentes briques
|
2
|
Suivi de projet
|
Réalisation du planning
|
0,5
|
Mise à jour du planning
|
0,5
|
Réunion de suivi
|
1
|
Installation du cluster (Production)
|
Installation et configuration des VMs
|
1
|
Installation de Cloudera Manager et CDH4 (HDFS, Mapreduce, Hbase,
Hive, Oozie, Zookeer, Hcatalog)
|
2
|
Déploiement des services sur des VM
|
2
|
Installation d'Impala et Solr
|
2
|
Test des briques (Production)
|
Test des VM reçu de Itics / demande de
réinstallation
|
0,5
|
Récupération des données de test
|
1
|
TF Flume : collecte des données (log) et stockage dans
HDFS
|
3
|
TF MapReduce : traitement des données
(développement et test)
|
2
|
TF Pig : traitement des données
|
2
|
TF Hive : traitement des données
|
2
|
TF Hcatalog : traitement des données
|
2
|
TF restitution : Réalisation d'une recherche de
données sur HDFS (Cloudera Search Solr)
|
4
|
TF Impala : traitement en temps réel
|
2
|
TF Solr : recherche des données
|
2
|
TF Mahout (Data mining)
|
2
|
TF Ambari (gestionnaire de cluster)
|
2
|
Utilisation d'une source de données mongoDB
|
1
|
Utilisation d'une source de données cassandra
|
|
Réalisation du POC (Production)
|
Définition de l'infrastructure matérielle
|
0,5
|
Elaboration du scénario d'exécution du POC
(enchainement des fonctionnalités)
|
2
|
Création et installation des machines virtuelles
|
1
|
Fabrication des données de test
|
5
|
Installation des briques retenues (Acquisition, stockage,
traitement, restitution)
|
0,5
|
Test des briques retenues
|
5
|
Finalisation de la documentation du déploiement et du test
de chaque brique
|
1
|
Finalisation de la documentation du POC
|
1
|
Réalisation de la vidéo (scénario
d'exécution)
|
1
|
Documentation des points importants en vu d'une
préconisation
|
2
|
Mise en forme des différents documents
|
1
|
Restitution
|
Rédaction de la présentation
|
1
|
Présentation du POC
|
1
|
|
Rédaction du rapport de stage
|
10
|
Total
|
90,5
|
Tableau 1 : Planning
prévisionnel
VIII.2 Planning de
réalisation
Le planning élaboré au début du stage a
été adapté au fil de l'avance du stage, compte de la
priorité de certains livrables, ce qui a donné lieu au planning
de réalisation ci-dessous.
Activités
|
Tâches
|
Durée prévue (en jours)
|
Durée réalisée (en
jour)
|
Ecart (en jour)
|
Contexte du stage, structure d'acceuil
|
Présentation CAPGEMINI, sujets de stages
|
1
|
1
|
0
|
Documentation (Support)
|
Présentation de la documentation
|
1
|
1
|
0
|
Présentation des outils
|
0,25
|
0,25
|
0
|
Installation des outils (Putty, virtual box, dropbox)
|
0,25
|
0,25
|
0
|
Présentation de la vidéo (stockage, traitement,
restitution des données)
|
0,25
|
0,25
|
0
|
Récupération et importation des machines
virtuelles
|
0,15
|
0,15
|
0
|
Parcourir la documentation
|
5
|
5
|
0
|
Récupération et exploitation de la documentation
sur les "usages et apports des technologies Big Data"
|
2
|
4
|
2
|
Identification des cas d'utilisation (permettant de
définir les besoins fonctionnels)
|
0,15
|
0,2
|
0,05
|
Recherche algorithme de recommandation
|
1
|
1
|
0
|
Documentation installation du cluster (Cloudera installation
manuelle)
|
1
|
1
|
0
|
Documentation collecte des données via l'API Flume
|
1
|
1
|
0
|
|
|
|
|
Documentation et compréhension fonctionnement de REST
|
0,5
|
0,5
|
0
|
Divers
|
Réunion avec Ameline (questionnaire)
|
0,1
|
0,1
|
0
|
Relecture du powerpoint
|
1
|
1
|
0
|
Récupération des codes sources
|
0,1
|
0,1
|
0
|
Réunion avec Ameline (questionnaire)
|
1
|
1
|
0
|
Test des VM (démarrage, connexion, configuration
réseau)
|
1
|
1
|
0
|
Faire une sauvegarde (image) des VM
|
0,25
|
0,25
|
0
|
Mise à jour du powerpoint
|
5
|
3
|
-2
|
Compréhension des langages utilisés par les
différentes briques
|
2
|
3
|
1
|
Suivi de projet
|
Réalisation du planning
|
0,5
|
0,5
|
0
|
Mise à jour du planning
|
0,5
|
0,5
|
0
|
Réunion de suivi
|
1
|
0,5
|
-0,5
|
Installation du cluster (Production)
|
Installation et configuration des VMs
|
1
|
8
|
7
|
Installation de Cloudera Manager et CDH4 (HDFS, Mapreduce, Hbase,
Hive, Oozie, Zookeer, Hcatalog, Impala, Solr)
|
6
|
5
|
-1
|
Test de l'installation et exploration de la console
|
0,5
|
1
|
0,5
|
Test des briques (Production)
|
Test des VM reçu de Itics / demande de
réinstallation
|
0,5
|
0,5
|
0
|
Récupération des données de test
|
1
|
1
|
0
|
TT Flume : collecte des données (log) et stockage dans
HDFS
|
3
|
0
|
-3
|
TT MapReduce : traitement des données
(développement et test)
|
2
|
0
|
-2
|
TT Pig : traitement des données
|
2
|
0
|
-2
|
TT Hive : traitement des données
|
2
|
0
|
-2
|
TT Hcatalog : traitement des données
|
2
|
0
|
-2
|
TT Impala : traitement en temps réel
|
2
|
0
|
-2
|
TT Solr : recherche des données
|
2
|
0
|
-2
|
TT Mahout (Data mining)
|
2
|
0
|
-2
|
TT Ambari (gestionnaire de cluster)
|
2
|
0
|
-2
|
Utilisation d'une source de données mongoDB
|
1
|
0
|
-1
|
Utilisation d'une source de données cassandra
|
1
|
0
|
-1
|
|
Test technique scalabilité et traitements
distribués
|
2
|
2
|
0
|
Réalisation du
démonstrateur(Production)
|
Définition de l'infrastructure matérielle
|
0,5
|
0,5
|
0
|
Identification de Cas d'utilisation s (UC)
|
0,5
|
0,5
|
0
|
Elaboration du scénario d'exécution des UC
|
2
|
1
|
-1
|
Création et installation des machines virtuelles
|
1
|
0,3
|
-0,7
|
Fabrication des données de test
|
5
|
5
|
0
|
Installation des briques retenues (Acquisition, stockage,
traitement, restitution)
|
0,5
|
1
|
0,5
|
Test des briques retenues et réalisation des UC
|
3
|
10
|
7
|
Finalisation de la documentation des tests techniques
|
1
|
3
|
2
|
Restitution sur QlikView
|
2
|
2
|
0
|
Réalisation de la vidéo (scénario
d'exécution)
|
7
|
8
|
1
|
Documentation des points importants en vu d'une
préconisation
|
2
|
2
|
0
|
Mise en forme des différents documents
|
1
|
1
|
0
|
Restitution
|
Rédaction de la présentation et du discours
|
1
|
1
|
0
|
|
Rédaction du rapport de stage
|
10
|
10
|
0
|
Total
|
94,5
|
79,35
|
-5,15
|
Tableau 2 : Planning
prévisionnel
VIII.3
Livrables
Tableau 3 : Liste des
livrables et taux de réalisation
L'ensemble des livrables que la stagiaire
précédente et moi avons réalisé servira à
des fin de support pour la présentation des solutions Big Data aux
potentiels clients. La plateforme de démonstration (vidéo) que
j'ai réalisée devait servir pour l'évènement
« architecture week » que CAPGEMINI a organisé au
sein de ses locaux le 4 Octobre dernier. Pendant cet événement,
les architectes solution de CAPGEMINI présentent à leurs clients
l'expertise de CAPGEMINI dans certaines nouvelles technologies ; le Big
Data devait faire partie des technologies présentées.
VIII.4
Difficultés rencontrées
La fonction de R&D en général
nécessite de mobiliser des moyens financiers, matériels, du temps
et des personnes. Or les résultats de recherches sont souvent
aléatoires. La question du financement de ces activités se pose
logiquement. Dans le cadre ce mon stage, j'ai été
confrontée à des difficultés d'ordre
matériel ; les ressources matériels à disposition
n'étaient pas adaptées pour un environnement de test. Il
était plus judicieux d'utiliser des machines physiques avec des
caractéristiques optimales ou des machines virtuelles
équivalentes pour les tests. Etant donné que les résultats
ne devaient pas être directement rentables pour l'entreprise, il
n'était pas évident de disposer des ressources matériels
adaptées.
D'autres difficultés sont celles rencontrées
lors des tests techniques, liées parfois aux matériels ou aux
logiciels ou à la configuration.
VIII.5 Solutions
Pour palier aux problèmes rencontrés, j'ai
utilisé plusieurs solutions, chacune adaptée à un
problème. Les solutions envisagées ont été
celles-ci :
§ Demander de l'aide aux bons interlocuteurs : me
rapprocher des personnes ayant déjà travaillées sur une
telle mission tout en évitant de les interrompre dans mes
interrogations, me rapprocher des personnes ayant une bonne connaissance du
fonctionnement interne de l'entreprise
§ Elaborer des questionnaires pour plus
d'efficacité
§ Recherches sur Internet, échanges sur des forums
VIII.6 Projet big
data
Actuellement, il y'a trop de buzz autour des technologies Big
Data. Avant de s'y lancer, il est important d'adopter une stratégie qui
s'appui sur le coeur de métier de l'entreprise, car il n'y a pas de
solution clé en main pour les Big Data.
Pour tirer le meilleur parti d'un projet Big Data, il faut
intégrer des connaissances approfondies dans des processus et
applications métiers afin d'accroître la réactivité
de l'entreprise et de prendre des décisions avisées plus
rapidement tout en misant sur l'innovation.
L'exploitation des Big data permet à une entreprise de
bénéficier d'un avantage concurrentiel indéniable dans son
secteur d'activité. « Le Big Data est à nos portes,
nous devons réfléchir à ses usages, pas à ses
technologies ! »
VIII.7 Apport du
stage
Au début du stage, j'étais dans un état
de panique car je n'avais aucune connaissance des technologies du Big Data. Je
partais en terrain inconnu.
A l'issu de mon stage, la montée en compétence
était bien perceptible au travers du travail
réalisé :
§ J'ai acquis une compréhension des enjeux
digitaux et des solutions adaptées pour le tissu industriel
§ Je me suis approprié les concepts du Big Data et
j'ai découvert les solutions qui existe sur le marché en
réponse à la problématique des Big Data
§ J'ai développé des connaissances sur des
outils décisionnels, des bases de données NoSQL.
IX. Conclusion
L'informatique à la base était le traitement de
grande quantité de données, mais ce qui a changé avec la
venue du Big Data, c'est la formalisation de l'évolution des volumes, de
la vitesse et de la variété des données, qui crée
de la valeur ajoutée.
Jusqu'ici, il n'existe pas encore sur le marché un
logiciel Big Data prêt à l'emploi que l'on puisse installer dans
une entreprise. Le Big Data est avant tout une démarche
stratégique, il faut se poser la question : comment est-ce
qu'à partir des données que j'ai ou que je peux collecter dans
mon entreprise, je peux créer de la valeur ? Autrement dit, qu'est
ce que je peux créer à partir de mes données. C'est
ça la stratégie, donner de la valeur à vos données,
transformer les données en euros ou en dollars. C'est grâce
à cette stratégie que le Big Data fonctionnera à
l'intérieur d'une entreprise.
L'écosystème Hadoop est constitué de
plusieurs briques, qui pour certaines sont similaires en terme de
fonctionnalités. Les tests techniques effectués m'ont permit de
comprendre que toutes les briques ne sont pas forcément
nécessaires pour faire fonctionner le cluster, celui-ci est
modulable ; il revient à l'utilisateur de choisir les briques qui
lui sont utiles en fonction de ses besoins. L'installation des briques
séparément est possible mais il est plus judicieux d'utiliser un
gestionnaire de cluster tel que Cloudera Manager pour centraliser toutes les
tâches de déploiement, d'administration et de supervision du
cluster.
Déployer une infrastructure Big Data demande de mettre
les mains dans le cambouis et de programmer. L'on peut faire ce qu'il veut
des données, à condition de rentrer dans le code pour obtenir ce
qu'il souhaite.
Le bilan de ce stage est dans l'ensemble positif, les
principaux buts du projet étant accomplis. La plus grande partie du
travail qui m'a été demandée a été
réalisée.
Pour conclure, je dirais que ce stage m'a été
d'un apport indéniable en matière de connaissances acquises sur
les technologies Big Data. C'est une expérience enrichissante qui m'a
permit de comprendre les enjeux d'un projet de Recherche &
Développement et de veille technologique, fort de plus dans un domaine
porteur ; pour capitaliser davantage sur cette expérience, je
continue à faire de la veille technologique sur concepts et technologies
Big Data.
Références
bibliographiques
Bermond, A. (2013). Big Data.
Haas, G. (2013, Septembre 17). Big data enjeux & risques
juridiques. Consulté le Octobre 2, 2013, sur site web
journaldunet.com:
http://www.journaldunet.com/ebusiness/expert/55180/big-data---enjeux---risques-juridiques.shtml
Le framework Apache Hadoop. (s.d.). Consulté le
Octobre 2013, sur Site web http://www-igm.univ-mlv.fr:
http://www-igm.univ-mlv.fr/~dr/XPOSE2012/Le%20framework%20Apache%20Hadoop/histoire.html
Le framework Apache Hadoop. (s.d.). Consulté le
Octobre 2013, sur site web www-igm.univ-mlv.fr:
http://www-igm.univ-mlv.fr/~dr/XPOSE2012/Le%20framework%20Apache%20Hadoop/architecture.html
Mathieu Millet, L. G. (2013, Février 3). Quel est le
paysage technologique du Big Data. Consulté le Septembre 30, 2013,
sur site web www.solucominsight.fr:
http://www.solucominsight.fr/2012/02/quest-ce-que-le-paysage-technologique-du-big-data/
Saulem, B. (2013, Mai). Définition de Big Data trois V
variété, volume, vélocité - Le big data.htm.
Consulté le Octobre 2013, sur site web daf-mag.fr:
http://www.daf-mag.fr/Fondamentaux/Le-Big-Data-255/Definition-de-Big-Data-trois-V-variete-volume-velocite-1076.htm
Saulem, B. (2013, Mai). Enjeux économiques du Big Data
à l'échelle mondiale - Le big data.htm. Consulté le
Octobre 2013, sur site web daf-mag.fr:
http://www.daf-mag.fr/Fondamentaux/Le-Big-Data-255/Enjeux-economiques-du-Big-Data-a-l-echelle-mondiale-1077.htm
Talend. (2013). Où en est l'adoption du BIG DATA.
Consulté le Juin 23, 2013, sur
http://info.talend.com/rs/talend/images/WP_FR_BD_Talend_SurveyResults_BigDataAdoption.pdf.
VISION IT GROUP. (2013). LE LIVRE D'OR 2013 DES ESN.
IPRESSE.NET.
Liste des figures
Figure 1 : Implantation de Capgemini dans le
monde
9
Figure 2 : Organigramme des unités
opérationnelles du groupe Capgemini
12
Figure 3 : Paysage technologique Big Data,
(Bermond, 2013)
19
Figure 4 : Ecosystème Hadoop
21
Figure 5 : Architecture Hadoop avec les
principaux rôles des machines, (Le framework Apache Hadoop)
22
Figure 6 : Processus d'un traitement MapReduce,
(Bermond, 2013)
24
Figure 7 : Solutions Big Data sur le
marché, (Bermond, 2013)
27
Figure 8 : Architecture du cluster Hadoop mis
en place
30
Figure 9 : Architecture des composants sur un
serveur maître
31
Figure 10 : Page d'accueil de Cloudera Manager
après l'installation du cluster
32
Figure 11 : Capacité de stockage
initiale du cluster
35
Figure 12 : Distribution des tâches du
job sur les 3 noeuds actifs
36
Figure 13 : Etat d'avancement du job
36
Figure 14 : Capacité de stockage du
cluster après la remise en service du quatrième noeud
37
Figure 15 : Distribution des tâches sur
les 4 noeuds actifs
38
Figure 16 : Scénario d'exécution
des cas d'utilisation
41
Figure 17 : Résultat d'un job MapReduce
via l'interface Hue
42
Figure 18 : Résultat de requête
sur l'invite de commande de Hive
43
Figure 19 : Les types d'utilisateur sur les
réseaux sociaux
44
Figure 20 : Taux d'adolescents et d'adulte sur
les réseaux sociaux
45
Figure 21 : Activités sur internet PC vs
Mobile
46
Liste des tableaux
Tableau 1 : Planning prévisionnel
50
Tableau 2 : Planning prévisionnel
52
Tableau 3 : Liste des livrables et taux de
réalisation
52
|