Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
ELKHATTABI Kaoutar
Ecole Nationale des Sciences Appliquées de Tanger
Table des matières:
I- Introduction .................................................................................. 2
Préambule : ....................................................................................................................... 2
Présentation de l’entreprise : ............................................................................................ 3
1
I- Introduction :
Dans le cadre de sa formation, l’Ecole Nationale des Sciences Appliquées
de Tanger, exige un stage de fin d’année à travers lequel les étudiants ingénieurs
peuvent concrétiser leurs connaissances acquises durant l’année et ainsi découvrir
les différents métiers et faire le pas dans le monde de l’entreprise.
Le stage effectué est un projet de recherche, au sein de l’autorité portuaire de
Tanger Med, qui concerne le traitement des Big Data dans des systèmes distribués.
Ce rapport décriera les différentes phases du projet, à savoir : la recherche,
l’installation et le test. Cependant, il couvrira les concepts abordés, les différents
outils existants et enfin les atouts du projet.
Préambule :
Le Big Data représente un ensemble de données volumineux qui ne peuvent pas
être traités avec des outils de gestion de bases de données classiques.
Ceux sont des données qui ne peuvent pas être contenues par lignes et colonnes
dans un fichier Excel.
Elles ne peuvent pas être analysées avec des méthodes analytiques traditionnelles.
Le Big Data répond aux 3 problématiques posées par l’augmentation du volume
d’informations de ces dernières années :
• Volume : Quantité d’informations à collecter et traiter.
• Vélocité : Supporter une grande fréquence de collecte d’information.
• Variété : et la compatibilité avec plusieurs sources d’informations
(structurées, non structurées, photos, vidéos…)
Le volume de données étant en constante évolution, il nous faut stocker, lire et
traiter une large quantité de données en temps réel.
Nous avons donc besoin d'un moyen de paralléliser le traitement de ces données
(lecture, écriture) tout en garantissant sa disponibilité en cas de panne matérielle.
Le Framework Hadoop est un des outils Big Data Open Source qui permet de
répondre à cette problématique.
Il permet en effet un traitement massif de données en parallèle en proposant un
nouveau système de stockage distribué, inspiré du système GFS de Google tout en
garantissant la haute disponibilité des données.
Hadoop est utilisé par la plupart des grandes entreprises IT devant au quotidien
traiter une large quantité d’informations : Yahoo, Facebook, Twitter, Amazon,
Netflix…
2
Présentation de l’entreprise :
Plus qu’un port, le complexe Tanger Med est une plateforme logistique
intégrée, connectée à un réseau de transport multimodal (liaisons ferroviaires,
autoroutes et voie express) pour le transport des marchandises et des personnes
vers toutes les régions économiques du Royaume. L’exploitation des terminaux
comme de l’ensemble des activités portuaires est assurée dans le cadre de contrats
de concession, par des opérateurs de renommée mondiale. Le port Tanger Med
compte ainsi dans ses rangs les plus grands armements mondiaux (Maersk, CMA-
CGM, MSC…) ainsi que des leaders portuaires tels que APM TERMINALS et
EUROGATE.
4
Organigramme de gouvernance:
Hadoop :
Hadoop est un Framework logiciel open source permettant de stocker des
données, et de lancer des applications sur des grappes de machines standards.
Cette solution offre un espace de stockage massif pour tous les types de données,
6
une immense puissance de traitement et la possibilité de prendre en charge une
quantité de tâches virtuellement illimitée. Plutôt que de devoir déplacer les
données vers un réseau pour procéder au traitement, le Framework MapReduce
permet de déplacer directement le logiciel de traitement vers les données.
Les composants d’Hadoop 2.x :
Avantages :
- Stockage et traitement de grandes quantités de données d’une façon
rapide.
- Protection des données et applications traitées contre les échecs
hardware.
- Stockage automatique de copies multiples des données.
- Stockage des Big data sur des machines standards.
- Administration minimale.
Défis/Inconvénients :
- Programmation de MapReduce non efficace pour les tâches analytiques
itératives et interactives.
- Problèmes de sécurité des données fragmentées.
Hadoop au sein de l’entreprise :
Hadoop est utilisé par de nombreuses entreprises comme solution Big Data,
dont ses usages :
• Le coût réduit des machines standard et l’archive de données.
• Capacité de traiter des algorithmes analytiques, qui aident l’entreprise à
opérer plus facilement. (Approche bac à sable)
7
• Stockage des données dans leur format original, afin d’offrir une vue brute
des données aux analystes et aux data scientistes. (Grâce aux Data Lakes)
• Moteur de recommandations (analyse de données en temps réel pour prédire
les préférences des consommateurs)
• Data store pour les transactions (objets connectés)
MapReduce :
MapReduce est la couche de traitement de données de Hadoop. Il traite de
grandes données structurées et non structurées stockées dans HDFS.
MapReduce traite également une énorme quantité de données en parallèle.
Pour ce faire, il divise le travail (travail soumis) en un ensemble de tâches
indépendantes (sous-travail). MapReduce fonctionne en divisant le traitement
en phases : Map et Reduce.
◦ Map - C'est la première phase du traitement, où nous spécifions tout le code
logique complexe. Chargée de la répartition des taches aux différentes
machines du cluster.
◦ Reduce - C’est la deuxième phase de traitement. Ici, nous spécifions un
traitement léger comme une agrégation / sommation. Réduit tous les résultats
issus des machines en une seule synthèse.
Il est composé de :
- JobTracker : Nœud qui gère les ressources et les tâches d’un système.
- JobHistoryServer : gère les tâches déjà accomplies.
- TaskTracker : Agent déployé dans chaque machine, pour les tâches
Map et Reduce.
HDFS :
Travaille en mode Maitre-esclave, chargé du stockage des données traitées.
Composé de deux types de nœuds :
◦ NameNode (Maitre) : Gère les autres nœuds esclaves. Assigne les
tâches à chaque nœud.
◦ DataNode (Esclave): déployé sur chaque machine et fournit du
stockage. Responsable des requêtes de lecture et écriture de la part
des clients.
Il existe 3 processus démons (Daemons) pour le stockage de données :
◦ NameNode : se charge de stocker les métadonnées (nombre de
blocs, nom du fichier...)
9
◦ Secondary NameNode : faire des checkpoints des métadonnées du
ficher système dans le NameNode.
◦ DataNode : démon qui s’exécute sur l’esclave.
Si le client veut écrire un fichier en HDFS, Hadoop Framework le décompose en
une petite donnée appelée bloc. La taille par défaut du bloc est de 128 Mo, que
nous pouvons configurer selon les besoins. Ensuite, les blocs sont stockés dans le
cluster de manière distribuée en parallèle dans le cluster. Hadoop Framework
reproduit chaque bloc. Et stocke ces blocs sur le cluster sur différents nœuds. Par
défaut, le facteur de réplication est 3.
YARN :
YARN (Yet Another Ressource Negotiator) fournit la gestion des ressources. C'est
le système d'exploitation de Hadoop. Il est responsable de la gestion et de la
surveillance des charges de travail, ainsi que de la mise en place de contrôles de
sécurité.
Avant YARN, Hadoop pouvait exécuter que les applications MapReduce.
Apache YARN est également une plate-forme centrale pour fournir des outils de
gouvernance des données à travers les clusters. YARN permet à plusieurs
moteurs de traitement de données tels que la diffusion en temps réel, le
traitement par lots, etc.
Composants de YARN :
◦ Gestionnaire de ressources - Il s’agit d’un composant de niveau cluster et
s’exécute sur la machine Maître. Il gère les ressources et planifie les applications
exécutées sur le dessus de YARN. Il comporte deux composants : le planificateur
et le gestionnaire d'applications.
◦ Gestionnaire de nœuds - Il s’agit d’un composant de niveau nœud. Il
fonctionne sur chaque machine esclave. Il communique en permanence avec
Resource Manager pour rester à jour
Spark :
Apache Spark est un moteur de traitement de large volume de données rapide. Il
permet d’effectuer des analyses de grande envergure par le biais de machines en
clusters, il permet aussi de traiter des données issues de référentiels de données
comme HDFS, NoSQL ou les data stores de données relationnels comme Apache
Hive.
Avantages :
10
- Vitesse de traitement (permet de lancer des programmes 100x plus
rapidement que Hadoop MapReduce in-memory).
- Facilité d’utilisation (modèle de programmation plus simple que celui
d’Hadoop)
- Développement d’applications parallèles.
- A la fois moteur de requêtes SQL, logiciel de traitement de données en
flux (Spark Streaming), et système de traitement par graphe (GraphX).
- Regroupement de plusieurs bibliothèques pour le Machine Learning.
- Capacité à fédérer de nombreux types de base de données et exécuter
des applications analytiques diverses.
Inconvénients :
- Problèmes des small files.
- Absence de support pour le traitement en temps réel.
- Pas de système propre à Spark pour la gestion des fichiers. (Repose sur
d’autres plateformes comme Hadoop, ou sur le cloud)
- Traitement itératif.
- Optimisation manuelle.
Spark vs Hadoop:
Le traitement linéaire de grands ensembles de données est l’avantage de Hadoop
MapReduce, tandis que Spark offre des performances rapides, un traitement
itératif, des analyses en temps réel, un traitement des graphes, un apprentissage
automatique, etc. Dans de nombreux cas, Spark peut surpasser Hadoop
MapReduce. Spark est entièrement compatible avec l'écosystème Hadoop et
fonctionne sans problème avec le système de fichiers distribués HDFS, Apache
Hive, etc.
Plutôt qu’un remplacement d’Hadoop, il peut être considéré comme une
alternative Spark à Hadoop MapReduce. Spark n’a pas pour vocation de
remplacer Hadoop, mais de fournir une solution unifiée et compréhensible pour
gérer différents cas d’usage Big Data.
Les deux sont des projets Apache de niveau supérieur, et sont souvent utilisés
ensemble et présentent des similitudes.
11
Quelques solutions existantes :
◦ L’Archive de Hadoop : est une technique qui regroupe plus efficacement
le nombre de petits fichiers en blocs HDFS. Il est possible d'accéder
directement aux fichiers d'un fichier HAR sans le développer. La création de
HAR réduira la surcharge de stockage des données sur Namenode.
Avantage :
◦ Fichier *.har peut être utilisé comme input de
MapReduce.
Inconvénients :
◦ La création des fichiers. har engendre la création de
copies des fichiers originaux, et donc ça prend la même
quantité d’espace des fichiers originaux.
◦ Une fois le fichier. har créé, il ne peut être modifié. (Pas
d’ajout ni suppression de fichiers n’est permis)
◦ Même si le fichier. har peut être utilisé comme input de
MapReduce, ça considère tout de même l’input comme
fichiers individuels.
◦ HDFS avancé : Le modèle HDFS amélioré est basé sur les indexes. En
fonction de la dépendance des fichiers, les fichiers appartenant au même
répertoire sont intégrés dans un grand fichier et construisent en
conséquence un index pour chaque petit fichier afin de réduire le gaspillage
causé par eux.
◦ Combinaison des InputFormat de fichiers :
(CombineFileInputFormat)
Cette méthode améliore les performances du système en modifiant la classe
InputFormat. InputFormat sera modifié de manière à ce que plusieurs
fichiers soient combinés en un seul groupe. Chaque tâche du Map aura plus
d’entrées à traiter, contrairement au système existant.
Inconvénients :
▪ Devoir modifier dans le code pourra engendrer des erreurs.
12
L’IoT offre aux organisations de nouveaux moyens innovants de gérer et de
surveiller les opérations éloignées. Il permet d’avoir des yeux et des oreilles dans
des endroits reculés, fournissant constamment des informations aux applications
et aux magasins de données. Le faible coût de l’aspect "objet" rend possible
l’observation et la gestion d’activités autrement hors de portée. Grâce à l’Internet
des objets, il est également possible de rassembler des informations sur des
événements autrefois invisibles, comme établir un lien entre les schémas
météorologiques et la production industrielle.
Hadoop et IoT :
A mesure que le nombre d’objets connectés augmente, le volume de données
générées par l’internet des objets explose. Ainsi, pour pouvoir les prendre en
charge et les analyser en temps réel, il est nécessaire de s’en remettre aux outils
analytiques Big Data.
Ces outils ont la capacité de traiter rapidement les larges volumes de
données générées en continu par les appareils IoT, et d’en extraire des insights
exploitables. Le machine-Learning permet notamment de repérer des modèles de
données. Avec ces patterns, une entreprise peut notamment mettre en place la
maintenance prédictive sur ses machines industrielles.
Les experts croient bien que les entreprises peuvent profiter au maximum des
objets connectés en joignant Hadoop avec IoT. Les raisons principales pour
lesquelles Hadoop est le plus convenable de travailler avec en termes d’objets
connectés sont :
1- Hadoop est capable de stocker et traiter n’importe quel volume de données.
2- Pas de risques en ce qui concerne l’arrêt du travail à cause d’imprévus, vu
que le travail est divisé entre les machines du cluster.
3- Vu qu’il est open source et basé sur Java, Hadoop est compatible avec toute
plateforme.
4- Hadoop possède une bibliothèque dans le module des Common Utilities qui
peut détecter les erreurs.
13
V- Mise en place d’un cluster multi-nœuds de Hadoop :
OS :
*JAVA_HOME:
14
Etape 2: Installation d'Hadoop
Wget
http://mirrors.fibergrid.in/apache/hadoop/common/stable/hadoop-
2.9.1.tar.gz
cd hadoop-2.9.1/
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
0000
*Nous créeons deux dossiers Namenode et Datanode.
mkdir /home/$user/namenode
mkdir /home/$user/datanode
15
*Modifications de HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/$user/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>/home/$user/datanode</value>
</property>
<property>
<name>dfs.namenode.rpc-address</name>
<value>localhost :9000</value>
</property>
</configuration>
*Modifications de HADOOP_HOME/etc/hadoop/hadoop-env.sh:
start-dfs.sh
*Démarrage du YARN:
start-yarn.sh
*Vérification:
17
*Interface NameNode sur localhost : 50070/dfshealth.html :
*WordMapper
18
*SumReducer
*Main
Nous créons ensuite un dossier pour l’input où nous aurons le fichier texte sur
lequel nous allons appliquer le programme, et un autre dossier pour les classes.
Nous définissons aussi la variable HADOOP_CLASSPATH ;
19
Créer un dossier dans HDFS :
Nous pouvons voir apparaitre les dossiers sur localhost :50070 -> Utilities ->
Browse the file system
20
Accéder au dossier :
Cd /home/Desktop/WordCount
Nous avons maintenant le fichier .jar que nous avons créé dans le dossier courant.
22
Figure : les fichiers Input et Output sur localhost :50070
23
Le résultat avec :
24
VII- Conclusion :
En résumé, nous pouvons dire que Hadoop fournit une solution Open Source pour une
gestion de données puissante tout en permettant une scalabilité via l’ajout de librairies et une
haute disponibilité grâce aux réplications de données. Toutefois, nous pouvons toujours aider à
améliorer ces services, en appliquant des programmes comme celui basique réalisé dans ce
projet du comptage de mots (WordCount) qui entre dans le traitement de MapReduce et permet
d’agréger ou trier les résultats.
Certes Hadoop est un outil efficace, pourtant le contexte de l’entreprise exige un flux de
données sous forme d’une grande quantité de fichiers de petites tailles, ce qui est toujours un
défi plutôt redoutable nécessitant un travail à part. Ceci fait partie d’une grande vision comme
continuation de ce projet avec l’intégration de l’IoT afin d’améliorer la prise de décision.
Finalement, le projet est considéré comme sujet de recherche étendu, à travers lequel j’ai eu
la chance de découvrir les enjeux du Big data dans l’entreprise et les différents outils et solutions
existantes pour le traitement de celui-ci, ainsi j’ai pu fortifier mes connaissances dans le monde
des données, et me préparer méthodiquement au travail au sein de l’entreprise.
25
VIII- Bibliographie :
https://www.researchgate.net/publication/300090328_Dealing_with_Sma
ll_Files_Problem_in_Hadoop_Distributed_File_System
https://www.lebigdata.fr/hadoop
https://www.scnsoft.com/blog/spark-vs-hadoop-mapreduce
https://openclassrooms.com/fr/courses/4297166-realisez-des-calculs-
distribues-sur-des-donnees-massives/4308656-familiarisez-vous-avec-
hadoop
https://www.xplenty.com/blog/apache-spark-vs-hadoop-mapreduce/
• Installation Hadoop :
https://www.edureka.co/blog/install-hadoop-single-node-hadoop-cluster/
https://mbaron.developpez.com/tutoriels/bigdata/hadoop/installation-
monitoring-performance-multinoeud-avec-cloudera-cdh5/
https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-
common/SingleCluster.html
https://www.youtube.com/watch?v=OF4CzB54VYc
26