Hadoop 2 – YARN (Yet Another Resource Negotiator)

Apache Hadoop YARN (Yet Another Resource Negotiator) est une technologie de gestion de clusters. Elle rend l’environnement Hadoop mieux adapté aux applications opérationnelles qui ne peuvent pas attendre la fin des traitements par lots.

La principale différence entre Hadoop version 1 et Hadoop version 2 est la séparation claire dans la version 2 entre la gestion des ressources du cluster et le modèle de traitement des données.

Hadoop 1 vs Hadoop 2

Dans la version 1, MapReduce assure à la fois la gestion des ressources et le traitement des données.

Dans la version 2 :

  • La gestion des ressources du cluster est assurée par YARN.
  • Les modèles de traitement des données, MapReduce pour ce qui nous concerne, s’appuient sur YARN.
Hadoop 1 vs Hadoop 2

Hadoop 1 vs Hadoop 2

Les deux aspects “gestion des ressources du cluster” et “modèle de traitement des données” sont nettement distincts dans la version 2 de Hadoop, ce qui permet d’utiliser YARN avec des modèles de traitement différents de MapReduce tout en bénéficiant des fonctionnalités de HDFS.

Les daemons de type JT et TT n’existent plus dans la version 2 de Hadoop. Ils sont remplacés par plusieurs nouveaux daemons :

  • Le ResourceManager (RM) : il y en a un par cluster.
  • L’ApplicationMaster (AM) : il y en a un par job.
  • Le NodeManager (NM) : il y en a un par nœud esclave.

Hadoop 2 – HDFS Federation

Le dispositif HDFS Federation permet de faire cohabiter plusieurs NameNodes (NN) au sein d’un même cluster physique.

Les NN sont indépendants deux à deux : chaque NN gère un espace de nommage (namespace) qui lui est propre et les NN ne communiquent pas entre eux.

Chaque NN se voit allouer un certain nombre de blocs pour stocker les fichiers dont il a la charge. Ces blocs sont répartis sur plusieurs nœuds. Un disque peut héberger des blocs correspondant à des NN différents.

L’intérêt du concept de Federation est double :

  • Federation facilite le scaling out d’un cluster :
    • Il est facile de rajouter des nœuds pour augmenter la capacité de stockage et/ou la puissance de traitement mais, dans la version 1, toute la charge de travail repose sur un seul NN, ce qui a ses limites lorsque l’on gère des clusters de plusieurs milliers de nœuds.
    • La version 2 de Hadoop, en distribuant la charge de travail entre plusieurs NN, facilite l’avènement de clusters de grande taille ; les temps de réponse au niveau des NN peuvent être améliorés (moins de métadonnées à gérer pour chaque NN, d’où besoins en RAM et en temps CPU moindres pour chaque NN, etc.).
  • Federation permet d’isoler chaque namespace des autres, par exemple pour faire cohabiter au sein d’un même cluster physique un cluster logique de développement et un cluster logique de production.
Une Federation HDFS

Une Federation HDFS

Les notions de High Availability et de Federation sont indépendantes. Il est possible d’activer l’une ou l’autre, ou les deux. Dans ce dernier cas, il faut activer l’option Federation avant d’activer l’option High Availability.

Les principaux apports de la version 2 d’Hadoop – Partie 1

L’objectif de ce article est de présenter les principaux apports de la version 2 de Hadoop. Ils sont au nombre de quatre :

  • High Availability (HA) ou haute disponibilité en français , un nouveau dispositif de HDFS qui permet de faire en sorte que le NameNode (NN) ne soit plus un Single Point Of Failure (SPOF).
  • Federation, un nouveau dispositif de HDFS qui permet de gérer de manière plus efficace les clusters de grande taille.
  • YARN, un gestionnaire de ressources générique de seconde génération sur lequel s’appuie MapReduce, et qui peut être aussi mis en œuvre par d’autres modèles de traitement de données.
  • La possibilité d’installer Hadoop directement sous Microsoft Windows.

Pour une liste à jour des dernières versions de Hadoop et de leurs fonctionnalités, se reporter l’adresses suivante : http://hadoop.apache.org/releases.html#News.

High Availability

Dans la version 1 de Hadoop, les clusters Hadoop disposaient d’un NN unique qui gérait l’arborescence des fichiers HDFS et suivait le stockage des  données dans un cluster.

Jusqu’à Hadoop 2.0.0, la seule façon de parer à une défaillance du NN était :

  • De lui affecter une machine à haute tolérance aux pannes.
  • D’avoir une machine “miroir”, prête à démarrer en cas de défaillance du NN.

Depuis Hadoop 2.0.0, cette notion de machine “miroir” a été institutionnalisée par le biais du mode HA (High Availability = haute disponibilité). Dans ce mode, il existe deux NN, l’un actif (Active NN), l’autre en veille (Standby NN). Le Standby NN est prêt à remplacer automatiquement l’Active NN en cas de défaillance de ce dernier, en quelques secondes en mode automatique.

Les informations sur la cartographie des données du cluster sont disponibles à la fois au niveau de l’Active NN et au niveau du Standby NN.

Le Standby NN assume en outre la fonction du SNN, qui n’existe donc plus tant qu’il est en veille.

L’opération consistant à basculer de l’Active NN vers le Standby NN peut se faire de manière automatique (Automatic Failover) ou manuelle (Manual Failover).

Les daemons de HDFS en mode "High Availability (HA)"

Les daemons de HDFS en mode “High Availability (HA)”

Développement de programmes MapReduce

les principes de fonctionnement de MapReduce restent valables quel que soit le langage de programmation utilisé.

Un programme Hadoop se divise généralement en trois parties :

  • Le driver, qui s’exécute sur une machine client, est chargé de configurer le job puis de le soumettre pour exécution.
  • Le mapper est chargé de lire les données stockées sur disque et les traiter.
  • Le reducer est chargé de consolider les résultats issus du mapper puis de les écrire sur disque.

1 – Les entrées-sorties

Dans MapReduce, les données sont toujours lues ou écrites selon le format <key, value> (<clef, valeur>).

Les données lues par le mapper sont définies au niveau du driver. La définition des données comprend :

  • Leur localisation (fichier ou répertoire).
  • Le type des enregistrements, qui est défini par la classe InputFormat.
  • La détermination de la taille des InputSplits : un InputSplit définit le volume des données qui seront lues à chaque opération de lecture.

Hadoop prend en compte par défaut les types d’enregistrement suivants :

  • TextInputFormat :
    • value est une ligne entière terminée par \n
    • key est l’offset de la ligne depuis le début de fichier
  • KeyValueTextInputFormat:
    • Chaque ligne est supposée être au format <key><separator><value>\n.
    • Le separateurr par défaut est tab.
  • SequenceFileInputFormat :
    • Permet de lire un fichier binaire de paires <key, value>, comprenant éventuellement des métadonnées.
  • SequenceFileAsTextInputFormat :
    • • Format identique au précédent mais, en plus, convertit les clefs et les valeurs en strings (<key.toString(), value.toString()>).

Dans Hadoop:

  • Les clefs sont des objets qui implémentent l’interface ComparableWritable.
  • Les valeurs sont des objets qui implémentent l’interface Writable.

Par défaut, Hadoop propose les types de données suivants :

  • IntWritable (int en Java).
  • DoubleWritable (double en Java).
  • Text (string en Java).
  • etc.

2 – La phase map (exemple 1)

Nous allons utiliser le programme WordCount pour expliquer le fonctionnement d’un mapper ainsi que celui d’un reducer. Le programme WordCount est écrit en pseudo-code et est simplifié à l’extrême.

Il s’agit de concevoir un programme Hadoop comptant le nombre d’occurrences des différents mots composant un livre.

Voici le contenu du fichier (livre) en entrée :

Lorem ipsum dolor sit
nec et nec et ultrices
Pellentesque et Pellentesque et bibendum
Lorem ipsum dolor sit

Un enregistrement correspond à une ligne terminée par \n. Dans un véritable programme Hadoop, on utilisera le format TextInputFormat pour lire les enregistrements.

Ci-dessous le mapper du programme WordCount :

Explication :

Ligne 1 : le mapper lit en entrée un enregistrement sous la forme d’un couple <key, value> avec :

  • value du type String (c’est une ligne du fichier).
  • key du type LongWritable (c’est l’offset de la ligne depuis le début du fichier).

ligne 2 : pour chaque mot w de la ligne en cours…

Ligne 3 : on écrit dans un fichier en sortie le couple <w, 1>, 1 correspondant à une occurrence du mot contenu dans la variable w.

Le fichier en sortie de mapper sera donc le suivant :

Lorem,1
ipsum,1
dolor,1
sit,1
nec,1
et,1
nec,1
et,1
ultrices,1
Pellentesque,1
et,1
Pellentesque,1
et,1
bibendum,1
Lorem,1
ipsum,1
dolor,1
sit,1

3 – Entre la phase map et la phase reduce (exemple 1)

Avant d’être envoyé au reducer, le fichier est automatiquement trié par clef par Hadoop : c’est ce que l’on appelle la phase de “shuffle & sort”. Le fichier en entrée du reducer est le suivant :

Lorem,[1,1]
ipsum,[1,1]
dolor,[1,1]
sit,[1,1]
nec,[1,1]
et,[1,1,1,1]
ultrices,[1]
Pellentesque,[1,1]
bibendum,[1]

4. La phase reduce (exemple 1)

Ci-dessous le reducer du programme Hadoop permettant de consolider les résultats issus du mapper :

Explication :

Ligne 1 : le reducer prend en entrée un enregistrement sous la forme d’un couple <key, value> avec :

  • key du type Text (c’est un mot).
  • value étant une liste de valeurs du type intWritable.

Ligne 2 : le reducer remet à zéro le compteur wordCount lorsque l’on change de mot.

Ligne 3 et 4 : pour chaque valeur v dans la liste inValue2 on ajoute v à wordCount.

ligne 5 : quand on change de mot, on écrit dans un fichier en sortie le couple <inKey2, wordCount>, wordCount étant le nombre d’occurrences du mot contenu dans la variable inKey2.

Le fichier en sortie de reducer sera donc le suivant :

Lorem,2
ipsum,2
dolor,2
sit,2
nec,2
et,4
ultrices,1
Pellentesque,2
bibendum,1

Nous venons d’écrire notre premier programme Hadoop, permettant de compter le nombre d’occurrences des différents mots composant un livre !

  • Un job Hadoop comprend au minimum un mapper : il peut ne pas comprendre de phase reduce.
  • Durant la phase de shuffle & sort, tous les mappers sont susceptibles d’envoyer des données vers tous les reducers.

fonctionnement globale de mapreduce

Présentation et fonctionnement de MapReduce

Une bonne compréhension de MapReduce implique la maitrise du fonctionnement de Hadoop et HDFS. Pour cela, ces deux articles sont obligatoires pour mieux appréhender la suite du cours.

Qu’est ce que MapReduce ?

MapReduce est un modèle de programmation conçu spécifiquement pour lire, traiter et écrire des volumes de données très importants. Les programmes adoptant ce modèle sont automatiquement parallélisés et exécutés sur des clusters (grappes) d’ordinateurs. MapReduce consiste en deux fonctions map() et reduce().

map” est le nom d’une fonction de haut niveau qui applique une fonction donnée à chacun des éléments d’une liste et retourne une liste. Par exemple :

(mapcar #’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4)

reduce” est le nom d’une fonction de haut niveau qui applique une fonction donnée à tous les éléments d’une liste et retourne une liste unique. Par exemple :

(reduce #’+ ‘(1 2 3 4)) => 10

MapReduce implémente les fonctionnalités suivantes :

  • Parallélisation automatique des programmes Hadoop.
    • HDFS se charge de la répartition et de la réplication des données ;
    • Le maître divise le travail en jobs parallèles et les répartit ;
    • Le maître collecte les résultats et gère les pannes des noeuds.
  • Gestion transparente du mode distribué.
  • Tolérance aux pannes.

Tout l’intérêt de ce modèle de programmation est de simplifier la vie du développeur Hadoop, en lui masquant le fonctionnement interne de Hadoop (parallélisation , tolérance aux pannes,…etc). Ainsi, le modèle de programmation permet au développeur de ne s’intéresser qu’à la partie algorithmique. Il transmet alors son programme MapReduce développé dans un langage de programmation au framework Hadoop pour l’exécution.

Fonctionnement de MapReduce

Un programme MapReduce se compose des trois parties suivantes

  • Le driver, qui s’exécute sur une machine client, est responsable d’initialiser le job puis de le soumettre pour exécution.
  • Le mapper est responsable de lire les données stockées sur disque et les traiter.
  • Le reducer est responsable de consolider les résultats issus du mapper puis de les écrire sur disque.

Fonctionnement de HDFS

Présentation de HDFS

HDFS (Hadoop Distributed File System) est le composant de Hadoop en charge du stockage des données dans un cluster Hadoop

HDFS reprend de nombreux concepts proposés par des systèmes de fichiers classiques comme ext2 pour Linux ou FAT pour Windows. Nous retrouvons donc la notion de blocs (la plus petite unité que l’unité de stockage peut gérer), les métadonnées qui permettent de retrouver les blocs à partir d’un nom de fichier, les droits ou encore l’arborescence des répertoires.

Toutefois, HDFS se démarque d’un système de fichiers classique pour les principales raisons suivantes :

  • HDFS est optimisé pour maximiser les débits de données. La taille d’un bloc de données est ainsi de 64 Mo dans HDFS contre 512 octets à 4 Ko dans la plupart des systèmes de fichiers traditionnels, ce qui permet de réduire le seek time. ( Il est toutefois possible d’augmenter la taille d’un bloc à 128 Mo ou à 256 Mo en fonction des besoins)
  • HDFS est un système de gestion de fichiers du type Write Once Read Many (WORM) : on y écrit une fois le fichier, puis on y accède plusieurs fois..
  • HDFS fournit un système de réplication des blocs dont le nombre de réplications est configurable (3 par défaut). Pendant la phase d’écriture, chaque bloc correspondant au fichier est répliqué sur des nœuds distincts dans le cluster, ce qui contribue à en garantir la fiabilité et la disponibilité au moment de lecture de données. Si un bloc est indisponible sur un nœud, des copies de ce bloc seront disponibles sur d’autres nœuds.
  • HDFS s’appuie sur le système de fichier natif de l’OS pour présenter un système de stockage unifié reposant sur un ensemble de disques et de systèmes de fichiers hétérogènes.

Fonctionnement de HDFS

Le fonctionnement de HDFS est assuré par trois types de deamons :

1. Le NameNode (noeud maitre – master node):

Dans un cluster Hadoop, le NameNode gère l’espace de noms, l’arborescence du système de fichiers et les métadonnées des fichiers et des répertoires. Il centralise la localisation des blocs de données répartis dans le cluster.

Quand un client sollicite Hadoop pour récupérer un fichier, c’est via le Namenode que l’information est extraite. Ce Namenode va indiquer au client quels sont les Datanodes qui contiennent les blocs.

Le NameNode reçoit régulièrement un « battement de cœur » et un Blockreport de tous les DataNodes dans le cluster afin de s’assurer que les datanodes fonctionnent correctement. Un Bloclreport (ou rapport de bloc) contient une liste de tous les blocs d’un DataNode.

En cas de défailance du datanode, le NameNode choisit de nouveaux datanodes pour de nouvelles réplications de blocs de données, équilibre la charge d’utilisation des disques et gère également le trafic de communication des datanodes.

Les métadonnées sont stockées sur disque dur (fichier fsimage) et chargées dans la mémoire vive du NameNode lors du démarrage du cluster
Si vous perdez le NameNode, vous perdez HDFS!

2. Le SecondaryNameNode :

Il s’agit ici d’un abus de langage! Dans l’architecture HDFS, le nom – Secondary NameNode donne l’impression que c’est un substitut du NameNode. Hélas! Ce n’est pas le cas..

Le SecondaryNameNode effectue des tâches de maintenance pour le compte du NameNode. Plus précisément, le Secondary NameNode met à jour le fichier fsimage à interval régulier en y intégrant le contenu des edits.

Le SecondaryNameNode intervient soit :

  • lorsque le fichier edits atteint une taille prédéfinie.
  • à intervalle régulier (par exemple une fois par heure).

3. Le DataNode :

 

Installation de la distribution Cloudera de Hadoop

Deux possibilité sont disponibles pour télécharger Hadoop. La première solution consiste à utiliser la version proposée par la fondation Apache. La seconde solution consiste à utiliser les distributions fournies par des entreprises qui font du service autour d’Hadoop comme Cloudera , Hortonworks , MapR Technologies, …

Installation de la distribution Cloudera de Hadoop

1. Installation de VMware ou VirtualBox

Nous utiliserons VMware , et on considere son installation comme acquise et ne sera pas détaillée dans ce cours. (mais si vous avez un problème, n’hesitez pas à nous écrire)

2. Installation de Hadoop (distribution CDH4)

La version disponible au moment d’criture de ce cours est CDH5.

Connectez-vous sur le site de Cloudera à l’adresse : www.cloudera.com/content/support/en/downloads.html

En bas de page, recherchez Cloudera QuickStart VMs et cliquez sur le bouton Download Now!

hadoop-cloudera

Dans la page qui s’ouvre, cliquez sur le bouton Download for WMWare.

hadoop-clouderaVMs

Remplissez le formulaire, lisez et acceptez les Terms & Conditions pour commencer le téléchargement.

Décompressez le fichier téléchargé et sauvegardez le dossier cloudera-quickstart-vm-version-virtualbox dans un répertoire de votre choix.

Executer le fichier cloudera-quickstart-demo-vm.vmx. Ce dernier s’ouvre directement dans VMWare. Une machine virtuelle, intitulée cloudera-quickstart-demo-vm, apparaît à gauche de la fenêtre dans la liste des machines disponibles. (image ci-dessous).

Ouverture de Cloudera VM sur VMWare

Ouverture de Cloudera VM sur VMWare

Configurez la taille de mémoire vive à 1 024 Mo. (cloudera-quickstart-demo-vm >> Edit virtual machine setting >> Memory >> 1024 >> OK)

Configuration de la taille de la mémoire vive de Cloudera

Configuration de la taille de la mémoire vive de Cloudera

Sélectionnez la machine virtuelle cloudera-quickstart-demo-vm et cliquez sur la flèche verte intitulée Démarrer pour la lancer.

Démarrer Cloudera sur VMWare

Démarrer Cloudera sur VMWare

Une à deux minutes, le bureau de CentOS s’affiche, une fenêtre Firefox affichant un message comme ci-dessous:

Cloudera

Cloudera

Fermez Firefox et lancez le terminal

Terminal CentOS

Terminal CentOS

Tappez hadoop dans la fenêtre du Terminal pour verifier son installation :

Verification de Installation de la distribution Cloudera de Hadoop

Verification de Installation de la distribution Cloudera de Hadoop

l’installation s’est correctement déroulée!!

Pour arreter la machine virtuelle, cliquez sur Power Off

Arreter VMWare

Arreter VMWare

Et pour garder l’état de la machine virtuelle (retrouver la machine virtuelle exactement dans l’état dans lequel vous l’avez quittée), cliquez sur Suspend.

Suspendre VMWare

Suspendre VMWare

 

Les modes de fonctionnement de Hadoop

Les modes de fonctionnement de Hadoop sont en nombre de trois :

  • le mode local (local mode) ;
  • le mode pseudo-distribué (pseudo-distributed mode) ;
  • le mode totalement distribué (fully-distributed mode).

Le mode local

En mode local, Hadoop fonctionne sur une seule station de travail et les 5 daemons de Hadoop (NameNode, SecondaryNameNode, DataNode, JobTracker et TaskTracker) s’exécutent tous dans la même JVM. De plus, le système de fichier utilisé est celui du système d’exploitation et non HDFS. Le mode local mode est rarement utilisé, sauf pour tester Hadoop pour la première fois ou déboguer un programme.

Le mode pseudo-distribué

En mode pseudo-distribué, Hadoop fonctionne sur une seule station de travail, mais chacun des 5 deamons s’exécute dans sa propre JVM ainsi que le système de fichier utilisé est HDFS. Le mode pseudo-distribué est souvent utilisé par les développeurs Haddop, parce qu’il développe et teste des jobs simulant un vrai cluster Hadoop.

Le mode totalement distribué

Le mode totalement distribué correspond au fonctionnement d’un vrai cluster Hadoop, avec plusieurs stations de travail interconnectées en réseau. chacun des 5 deamons s’exécute dans sa propre JVM ainsi que le système de fichier utilisé est HDFS.

Le mode pseudo-distribué est celui utilisé dans ce cours.

 

Présentation de Hadoop

Qu’est ce qu’Hadoop ?

Hadoop est un framework 100% open source, écrit en Java et géré par la fondation Apache. Il a été conçu pour répondre aux besoins du Big Data, tant au plan technique qu’économique. Hadoop est capable de stocker et traiter de manière efficace un grand nombre de donnés, en reliant plusieurs serveurs banalisés entre eux pour travailler en parallèle.

Hadoop offre une grande flexibilité. Ses performances évoluent de manière quasi linéaire en fonction du nombre de machines constituant le cluster. Plus le nombre de nœuds est élevé moins le temps d’exécution des jobs est court!

Hadoop fonctionne sur le principe des grilles de calcul consistant à répartir l’exécution d’un traitement intensif de données sur plusieurs noeuds ou grappes de serveurs.

Java est le langage de préférence pour écrire des programme Hadoop natifs. Néanmoins, il est possible d’utiliser python, bash, ruby, perl …

hadoop

Le nom “Hadoop” était initialement celui d’un éléphant en peluche, jouet préféré du fils de Doug Cutting.

En quoi Hadoop est-il différent des anciennes techniques ?

  • Économique : Hadoop permet aux entreprises de libérer toute la valeur de leurs données en utilisant des serveurs peu onéreux.
  • Flexible : Hadoop permet de stocker de manière extensible tous types de données. Les données peuvent être non structurées et ne suivre aucun schéma structurées  (PDF, MP3, base de données, etc.) grâce à son système de fichier HTDFS « Hadoop Distributed File System ». Les utilisateurs peuvent transférer leurs données vers Hadoop sans avoir besoin de les reformater.
  • Tolère les pannes: les données sont répliquées à travers le cluster afin qu’elles soient facilement récupérables suite à une défaillance du disque, du nœud ou du bloc.
  • Etc,…

SGBD vs Hadoop

Les systèmes de gestion de bases de données (SGBD) traditionnels sont conçus pour fonctionner en mode transactionnel, ils ne sont en aucun cas capables, techniquement et/ou financièrement, de traiter de manière séquentielle des volumes de données se chiffrant au minimum en dizaines ou centaines de To.

Les distributions de Hadoop

Il existe plusieurs distributions de Hadoop, dont les plus connues sont celles de Cloudera, Hortonworks et MapR. Bien que dans le même temps, d’autres distributions Hadoop voient aussi le jour. Par exemple, il y a Pivotal HD de EMC Corporation ou IBM InfoSphere BigInSights. Avec Amazon Elastic MapReduce (EMR), Amazon offre même une solution hébergée, pré-configurée dans son cloud.

Ces distributions comprennent des produits gratuits, qui offrent les fonctionnalités de base de Hadoop, et des options ou produits payants, qui offrent des fonctionnalités avancées.

Qui utilise déjà Hadoop ?

Hadoop est utilisé par des entreprises ayant de très fortes volumétries de données à traiter. Parmi elles, on trouve notamment des géants du web comme Facebook, Twitter, LinkedIn, ou encore les géants de l’e-commerce à l’instar de eBay et Amazon.

Vous trouverez sur cette page, la liste des entreprises et institutions publiques qui utilisent Hadoop

Quels sont les domaines d’application d’Hadoop ?

Toutes les sociétés et tous les secteurs d’activités sont concernés : la vente/commerce, distribution, transports, les administrations et le secteur public, les domaines scientifiques et médicaux, la banque/assurance, les télécoms, les usines de production.

  • Dans le domaine de la gestion de clientèle (Anticipation des désabonnement)
  • Dans le domaine de la publicité (Ciblage de la clientèle)
  • Dans le domaine de la lutte contre la fraude
  • etc,…
Les modes de fonctionnement de Hadoop >>

Big Data

Introduction à Big Data

On assiste depuis quelques années à une explosion de données : essor de l’e-commerce, démocratisation de la connectivité mobile, multiplication des objets connectés… Résultat : on collecte des quantités gigantesques de données. Twitter, pour ne prendre que cet exemple, doit gérer 500 millions de nouveaux tweets quotidiennement.

Cela pose un défi de taille : il ne s’agit plus seulement de collecter et stocker ces volumes de données, il s’agit également de les traiter et les analyser en temps réel. Or, les outils classiques de gestion de données sont devenus inadaptés à leur traitement, soit pour des raisons techniques, soit pour des raisons économiques, soit pour les deux.

De ce constat est né le Big Data et aussi de nouveaux outils ont été développé pour palier aux problème de la collecte, du stockage et du traitement de gros volumes de données. Parmi eux, Hadoop.

Qu’est ce que Big Data ?

Big data fait référence à des ensembles de données qui, en raison de leurs Variété (Variety en anglais), Vitesse (Velocity en anglais) ou Volume ne peuvent pas être facilement stockées, manipulées ou analysées avec les méthodes traditionnelles, telles que les tableurs , les bases de données relationnelles ou les outils statistiques ordinaires.

  • Variété  :  La nature des données (Données structurées, semi-structurées ou non structurées)
  • Vitesse  :  La vitesse  à laquelle les données sont produites et évoluent dans le temps.
  • Volume :  Le volume  de données à collecter, stocker et traiter.

Mais d’ou viennent les données?

Nous distinguons deux types de sources de données pour les Big Data, données générées par les humains (photos, vidéos, audio, tweets,…) et d’autres, générées par les machines en communicant entre elles “M to M data”  (GPS, Satellites, Web Crawlers – robots d’indexation,… ).