lundi 27 avril 2015

Présentation d'Hadoop





Ce premier article vise à donner une vue d'ensemble et à quoi il peut servir.
D'autres articles rentreront dans le détail de certains composants de Hadoop (tel que MapReduce, Spark, HDFS, etc...)



Qu'est ce que Hadoop?

 (définition Wikipédia)

Hadoop est un framework Java libre destiné à faciliter la création d'applications distribuées et échelonnables (scalables), permettant aux applications de travailler avec des milliers de nœuds et des pétaoctets de données. Hadoop a été inspiré par les publications MapReduce, GoogleFS et BigTable de Google.
Hadoop a été créé par Doug Cutting et fait partie des projets de la fondation logicielle Apache depuis 2009.




 Architecture de Hadoop
Le noyau en v1.0 est composé de deux composants:
  • Le système de gestion de fichiers distribué: HDFS
  • Le framework MapReduce

Le noyau en v2.0 est composé de :
  • HDFS2
  • Yarn pour la gestion des process (un article sera consacré à ce composant)
  • Il est possible d'interfacer Yarn avec un nombre important de moteurs de scripts.

La version 1.0 est encore trés utilisée quand il existe des différences entre les deux versions il seront soulignés.
Un autre article article sera consacré à HDFS et HDFS2.






Source: image article Wikipedia

Nous consacrerons un article à décrypter le mode de fonctionnement de HDFS ( gestion des données) et de MapReduce ( gestion des  process).

 Écosystème HADOOP

 En plus de ces composants de base, plusieurs autres outils constituent écosystème de Hadoop:
  • Pig (Scripting)
  • Hive (SQL Query )
  • Streaming API ( afin d'utiliser divers langages tel que Ruby, Python, etc...)
  • HBase ( Columnar Store)
  • Flume ( Log Collector )
  • Oozie ( Workflow )
  • Sqoop - SQL to HADOOP ( Data exchange )
  • Impala (permet d'effectuer des requetes sql sur des fichiers HDFS ou HBase )
  • ZooKeeper ( outil permettant d'administrer et coordonner un cluster Hadoop)
  • Oozie ( outil d'ordonnancement des jobs MapReduce )
  • Hue ( ensemble d'outils permettant de gerer HDFS, jobs, HBase, etc...)
  • Mahout( algorithmes d'apprentissage automatique )

Cluster HADOOP

 Hadoop est déployé sur un ensemble de serveurs ( appelé un Nœud) constituant un "Cluster Hadoop".
Un cluster peut avoir de 1 à plusieurs centaines ou milliers de nœuds.

Un cluster Hadoop rempli les objectifs suivants:


  • Faciliter la création d'applications à large échelle (stocker et traiter des volumes de données très importants)
  • Être open source
  • Ne pas demander des ressources matériels hors norme (i.e. des ordinateurs de bureau peuvent convenir selon l'usage visé)
  • Grande Robustesse, si un nœud tombe pas de pertes de données, la charge de travail est repartie sur d'autres nœuds
  • Les nœuds sont interchangeables, leur retrait ou rajout ne doit pas perturber le cluster
  • L'ajout de nœuds dans un cluster augmente les performances de celui ci de manière (quasi) linéaire


Principe de stockage et traitement

Un cluster Hadoop est composé de plusieurs centaine à plus milliers de nœuds. La capacité de traitement et de stockage est la somme de la capacité de chaque nœud.

Pour améliorer les performances d'un cluster le système de gestion de fichiers de Hadoop (HDFS) écrit et lit le fichiers  par bloc de 64Mo ou 128Mo (HDFS2).


Chaque fichier est découpé en blocs de 64Mo et sont stockés dans un ou plusieurs nœuds.
Hadoop s'appuie sur le système de gestion de fichiers natif, l'espace perdu sera de la taille d'un bloc dans le système natif,  4 ou 8 ko dans le cas de ext3.


Redondance des données 

Dans un cluster Hadoop par défaut les données chargées sont stockées en trois exemplaires sur plusieurs nœuds.

Cette redondance des informations permet de:
  • garantir la disponibilité des données en cas de panne, deux copies des données restent disponibles sur d’autres nœuds.
  • Lancer l’exécution d’un job Hadoop sur n'importe quel nœud, surtout s’il stocke une copie des données nécessaires à la tâche. Hadoop lançant les traitements de préférence sur le nœud hébergeant les données sur lesquelles s'appuieront le  traitement.

Schema1
 

Tolérance à la panne

Lors de l’exécution d'un job, le process JobTracker alloue à chaque les taches sur les nœuds de telle manière que les taches s’exécutent sur le nœud hébergeant la donnée.
Ce fonctionnement va à l'encontre de l'approche traditionnelle mise en place dans la conception des architectures dans les Systèmes d'Informations (SI): Habituellement l'architecture MVC mise en place fait que les les processus sont exécutés sur un serveur (d'application) centralisé et les données sont rapatriées sur ce serveur à travers des requêtes SQL (par exemple).   Les données sont envoyées au plus prés du Job qui devra les traiter.
Avec le Big Data les volumes de données sont si importantes que le modèle traditionnel est mis à mal - Il est impossible de faire transiter sur les réseaux des To ou plus d'informations.
Les concepteurs de Hadoop ont resolu le probleme en inversant le flux: ce ne sont plus les données qui envoyées vers le traitement mais l'inverse.

En cas de panne, si un job ne s’exécute pas correctement ou ne donne plus de signe de vie au JobTracker, celui ci considère le premier traitement comme perdu et re soumet le traitement sur un autre nœud possédant les mêmes données.



L'architecture Hadoop supporte la panne de nœuds, leur redémarrage ou le déploiement de nouveaux sans que le service rendu par le cluster en soit affecté. Le redémarrage d'un cluster n'est jamais nécessaire grâce aux fonctionnalités de HDFS.   Ce dernier fera l'objet d'un autre article.



Si vous avez des questions ou remarques n’hésitez pas à laisser des commentaires.



mercredi 15 avril 2015

Big Data: Exemples de l'utilisation marketing




Le  site webmarketing.com presente dans un article sur le big data (du point marketing bien entendu) des utilisations faites de ce nouvel outil.

Lien vers l'article:   big-data-5-exemples-de-son-utilisation-marketing

Les sous parties de l'article sont:
  1. L’heure du real-time marketing et du native advertising (le suivi en temps reel des internautes, profillage de celui-ci)

  2. Target them all ! Le retargeting pour relancer sans relance !

  3. Personnalisation de l’information et de l’UX, Google, Facebook et Amazon en tête

  4. Le Marketing Automation : Le Big Data des grandes entreprises

  5.  L’analyse prédictive : plus d’intelligence pour plus de ventes


Ces différents paragraphes analysent 5 utilisation commerciales faites des big data, comment les internautes sont suivis, ciblés et leur comportement anticipés.  Bons exemples du champ d'application de la Big Data.

mercredi 8 avril 2015

Le Big Data








   Cette rubrique servira à presenter:
  •  ce qu'est le Big Data
  • définir mots clés
  • les paradigmes
  • partager des articles sur le sujet
  • soulever les interrogations liées à ce sujet dont tout le monde de l'informatique parle depuis quelques années mais qui reste obscure pour beaucoup d'Architectes et développeurs
  • Etc...